summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sheet.go15
-rw-r--r--sheet_test.go21
2 files changed, 27 insertions, 9 deletions
diff --git a/sheet.go b/sheet.go
index e02782a..935deac 100644
--- a/sheet.go
+++ b/sheet.go
@@ -317,14 +317,11 @@ func (f *File) SetSheetName(oldName, newName string) {
// string.
func (f *File) GetSheetName(index int) string {
wb := f.workbookReader()
- if wb != nil {
- for _, sheet := range wb.Sheets.Sheet {
- if sheet.SheetID == index {
- return sheet.Name
- }
- }
+ realIdx := index - 1 // sheets are 1 based index, but we're checking against an array
+ if wb == nil || realIdx < 0 || realIdx >= len(wb.Sheets.Sheet) {
+ return ""
}
- return ""
+ return wb.Sheets.Sheet[realIdx].Name
}
// GetSheetIndex provides a function to get worksheet index of XLSX by given
@@ -357,8 +354,8 @@ func (f *File) GetSheetMap() map[int]string {
wb := f.workbookReader()
sheetMap := map[int]string{}
if wb != nil {
- for _, sheet := range wb.Sheets.Sheet {
- sheetMap[sheet.SheetID] = sheet.Name
+ for i, sheet := range wb.Sheets.Sheet {
+ sheetMap[i+1] = sheet.Name
}
}
return sheetMap
diff --git a/sheet_test.go b/sheet_test.go
index ef795ad..3baa084 100644
--- a/sheet_test.go
+++ b/sheet_test.go
@@ -225,3 +225,24 @@ func TestUngroupSheets(t *testing.T) {
}
assert.NoError(t, f.UngroupSheets())
}
+
+func TestGetSheetName(t *testing.T) {
+ f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx"))
+ assert.Equal(t, "Sheet1", f.GetSheetName(1))
+ assert.Equal(t, "Sheet2", f.GetSheetName(2))
+ assert.Equal(t, "", f.GetSheetName(0))
+ assert.Equal(t, "", f.GetSheetName(3))
+}
+
+func TestGetSheetMap(t *testing.T) {
+ expectedMap := map[int]string{
+ 1: "Sheet1",
+ 2: "Sheet2",
+ }
+ f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx"))
+ sheetMap := f.GetSheetMap()
+ for idx, name := range sheetMap {
+ assert.Equal(t, expectedMap[idx], name)
+ }
+ assert.Equal(t, len(sheetMap), 2)
+}