Forráskód Böngészése

add macExcelFile to test

bronze1man 12 éve
szülő
commit
0925981d9e
3 módosított fájl, 31 hozzáadás és 3 törlés
  1. BIN
      macExcelTest.xlsx
  2. 22 0
      macExcel_test.go
  3. 9 3
      workbook.go

BIN
macExcelTest.xlsx


+ 22 - 0
macExcel_test.go

@@ -0,0 +1,22 @@
+package xlsx
+
+import (
+	"testing"
+)
+
+func TestMacExcel(t *testing.T) {
+	xlsxFile, error := OpenFile("macExcelTest.xlsx")
+	if error != nil {
+		t.Error(error.Error())
+		return
+	}
+	if xlsxFile == nil {
+		t.Error("OpenFile returned nil FileInterface without generating an os.Error")
+		return
+	}
+	s:=xlsxFile.Sheets[0].Cell(0,0).String()
+	if s!="编号"{
+		t.Errorf("[TestMacExcel] xlsxFile.Sheets[0].Cell(0,0).String():'%s'",s)
+		return
+	}
+}

+ 9 - 3
workbook.go

@@ -5,6 +5,7 @@ import (
 	"encoding/xml"
 	"fmt"
 	"io"
+	"strings"
 )
 
 // xlsxWorkbook directly maps the workbook element from the namespace
@@ -119,13 +120,18 @@ func getWorksheetFromSheet(sheet xlsxSheet, worksheets map[string]*zip.File) (*x
 	}
 	f, ok := worksheets[sheetName]
 	if !ok {
-		// excel created from mac Number,will have a sheets named "sheet"
+		// excel created from mac MsExcel,will have a sheets Id as "rId1",
+		// but has a sheet file named "sheet1" and  "_rels/sheet1.xml."
 		// this work around will open it
-		for _, f = range worksheets {
+		for sheetName, f = range worksheets {
+			//do not want "_rels/sheet1.xml."
+			if strings.Contains(sheetName,"_"){
+				continue
+			}
 			break
 		}
 		if f == nil {
-			return nil, fmt.Errorf("not found sheet file sheetId:%d", sheet.Id)
+			return nil, fmt.Errorf("not found sheet file sheetId:%s", sheet.Id)
 		}
 	}
 	rc, error = f.Open()