| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package xlsx
- import (
- "archive/zip"
- )
- // File is a high level structure providing a slice of Sheet structs
- // to the user.
- type File struct {
- worksheets map[string]*zip.File
- referenceTable *RefTable
- styles *xlsxStyles
- Sheets []*Sheet // sheet access by index
- Sheet map[string]*Sheet // sheet access by name
- }
- // Create a new File
- func NewFile() (file *File) {
- file = &File{};
- file.Sheets = make([]*Sheet, 0, 100)
- file.Sheet = make(map[string]*Sheet)
- return
- }
- // OpenFile() take the name of an XLSX file and returns a populated
- // xlsx.File struct for it.
- func OpenFile(filename string) (*File, error) {
- var f *zip.ReadCloser
- f, err := zip.OpenReader(filename)
- if err != nil {
- return nil, err
- }
- return ReadZip(f)
- }
- // Add a new Sheet, with the provided name, to a File
- func (f *File) AddSheet(sheetName string) (sheet *Sheet) {
- sheet = &Sheet{}
- f.Sheets = append(f.Sheets, sheet)
- f.Sheet[sheetName] = sheet
- return sheet
- }
|