1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // Copyright 2016 - 2021 The excelize Authors. All rights reserved. Use of
- // this source code is governed by a BSD-style license that can be found in
- // the LICENSE file.
- //
- // Package excelize providing a set of functions that allow you to write to
- // and read from XLSX / XLSM / XLTM files. Supports reading and writing
- // spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
- // complex components by high compatibility, and provided streaming API for
- // generating or reading data from a worksheet with huge amounts of data. This
- // library needs Go version 1.15 or later.
- package excelize
- import (
- "path/filepath"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- var MacintoshCyrillicCharset = []byte{0x8F, 0xF0, 0xE8, 0xE2, 0xE5, 0xF2, 0x20, 0xEC, 0xE8, 0xF0}
- func TestSetDocProps(t *testing.T) {
- f, err := OpenFile(filepath.Join("test", "Book1.xlsx"))
- if !assert.NoError(t, err) {
- t.FailNow()
- }
- assert.NoError(t, f.SetDocProps(&DocProperties{
- Category: "category",
- ContentStatus: "Draft",
- Created: "2019-06-04T22:00:10Z",
- Creator: "Go Excelize",
- Description: "This file created by Go Excelize",
- Identifier: "xlsx",
- Keywords: "Spreadsheet",
- LastModifiedBy: "Go Author",
- Modified: "2019-06-04T22:00:10Z",
- Revision: "0",
- Subject: "Test Subject",
- Title: "Test Title",
- Language: "en-US",
- Version: "1.0.0",
- }))
- assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetDocProps.xlsx")))
- f.Pkg.Store("docProps/core.xml", nil)
- assert.NoError(t, f.SetDocProps(&DocProperties{}))
- // Test unsupported charset
- f = NewFile()
- f.Pkg.Store("docProps/core.xml", MacintoshCyrillicCharset)
- assert.EqualError(t, f.SetDocProps(&DocProperties{}), "xml decode error: XML syntax error on line 1: invalid UTF-8")
- }
- func TestGetDocProps(t *testing.T) {
- f, err := OpenFile(filepath.Join("test", "Book1.xlsx"))
- if !assert.NoError(t, err) {
- t.FailNow()
- }
- props, err := f.GetDocProps()
- assert.NoError(t, err)
- assert.Equal(t, props.Creator, "Microsoft Office User")
- f.Pkg.Store("docProps/core.xml", nil)
- _, err = f.GetDocProps()
- assert.NoError(t, err)
- // Test unsupported charset
- f = NewFile()
- f.Pkg.Store("docProps/core.xml", MacintoshCyrillicCharset)
- _, err = f.GetDocProps()
- assert.EqualError(t, err, "xml decode error: XML syntax error on line 1: invalid UTF-8")
- }
|