|
|
@@ -15,91 +15,16 @@ func (e *XLSXReaderError) String() string {
|
|
|
return e.Error
|
|
|
}
|
|
|
|
|
|
-type XLSXV struct {
|
|
|
- Data string "chardata"
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXC struct {
|
|
|
- R string "attr"
|
|
|
- T string "attr"
|
|
|
- V XLSXV
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXRow struct {
|
|
|
- R string "attr"
|
|
|
- Spans string "attr"
|
|
|
- C []XLSXC
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSheetData struct {
|
|
|
- Row []XLSXRow
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSheetFormatPr struct {
|
|
|
- BaseColWidth string "attr"
|
|
|
- DefaultRowHeight string "attr"
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSelection struct {
|
|
|
- ActiveCell string "attr"
|
|
|
- SQRef string "attr"
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSheetView struct {
|
|
|
- TabSelected string "attr"
|
|
|
- WorkbookViewID string "attr"
|
|
|
- Selection XLSXSelection
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSheetViews struct {
|
|
|
- SheetView []XLSXSheetView
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXDimension struct {
|
|
|
- Ref string "attr"
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXWorksheet struct {
|
|
|
- Dimension XLSXDimension
|
|
|
- SheetViews XLSXSheetViews
|
|
|
- SheetFormatPr XLSXSheetFormatPr
|
|
|
- SheetData XLSXSheetData
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXT struct {
|
|
|
- Data string "chardata"
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSI struct {
|
|
|
- T XLSXT
|
|
|
-}
|
|
|
-
|
|
|
-type XLSXSST struct {
|
|
|
- Count string "attr"
|
|
|
- UniqueCount string "attr"
|
|
|
- SI []XLSXSI
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-type XLSXSheetStruct struct {
|
|
|
+type Sheet struct {
|
|
|
|
|
|
}
|
|
|
|
|
|
-type XLSXFile struct {
|
|
|
- Sheets []*XLSXSheetStruct
|
|
|
+type File struct {
|
|
|
+ Sheets []*Sheet
|
|
|
}
|
|
|
|
|
|
-type XLSXFileInterface interface {
|
|
|
- GetSheet(sheetname string) XLSXSheetStruct
|
|
|
+type FileInterface interface {
|
|
|
+ GetSheet(sheetname string) Sheet
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -116,7 +41,7 @@ func ResolveSharedString(reftable []string, index int) string {
|
|
|
}
|
|
|
|
|
|
|
|
|
-func readSheetsFromZipFile(f *zip.File) ([]*XLSXSheetStruct, os.Error) {
|
|
|
+func readSheetsFromZipFile(f *zip.File) ([]*Sheet, os.Error) {
|
|
|
var workbook *XLSXWorkbook
|
|
|
var error os.Error
|
|
|
var rc io.ReadCloser
|
|
|
@@ -129,24 +54,24 @@ func readSheetsFromZipFile(f *zip.File) ([]*XLSXSheetStruct, os.Error) {
|
|
|
if error != nil {
|
|
|
return nil, error
|
|
|
}
|
|
|
- sheets := make([]*XLSXSheetStruct, len(workbook.Sheets.Sheet))
|
|
|
+ sheets := make([]*Sheet, len(workbook.Sheets.Sheet))
|
|
|
for i, _ := range workbook.Sheets.Sheet {
|
|
|
- sheet := new(XLSXSheetStruct)
|
|
|
+ sheet := new(Sheet)
|
|
|
sheets[i] = sheet
|
|
|
}
|
|
|
return sheets, nil
|
|
|
}
|
|
|
|
|
|
-func OpenXLSXFile(filename string) (x *XLSXFile, e os.Error) {
|
|
|
+func OpenFile(filename string) (x *File, e os.Error) {
|
|
|
var f *zip.ReadCloser
|
|
|
var error os.Error
|
|
|
- var xlsxFile *XLSXFile
|
|
|
+ var xlsxFile *File
|
|
|
var v *zip.File
|
|
|
f, error = zip.OpenReader(filename)
|
|
|
if error != nil {
|
|
|
return nil, error
|
|
|
}
|
|
|
- xlsxFile = new(XLSXFile)
|
|
|
+ xlsxFile = new(File)
|
|
|
for _, v = range f.File {
|
|
|
if v.Name == "xl/workbook.xml" {
|
|
|
sheets, error := readSheetsFromZipFile(v)
|