Pārlūkot izejas kodu

Bugfix: use sheet name in func `AddChat`, relate issue #138

Signed-off-by: Ri Xu <xuri.me@gmail.com>
Ri Xu 8 gadi atpakaļ
vecāks
revīzija
ebafbdde73
4 mainītis faili ar 15 papildinājumiem un 13 dzēšanām
  1. 0 1
      col.go
  2. 13 6
      picture.go
  3. 0 1
      rows.go
  4. 2 5
      sheet.go

+ 0 - 1
col.go

@@ -75,7 +75,6 @@ func (f *File) SetColVisible(sheet, column string, visible bool) {
 //    err := xlsx.Save()
 //    if err != nil {
 //        fmt.Println(err)
-//        os.Exit(1)
 //    }
 //
 func (f *File) SetColWidth(sheet, startcol, endcol string, width float64) {

+ 13 - 6
picture.go

@@ -100,13 +100,17 @@ func (f *File) AddPicture(sheet, cell, picture, format string) error {
 // xl/worksheets/_rels/sheet%d.xml.rels by given worksheet name, relationship
 // type and target.
 func (f *File) addSheetRelationships(sheet, relType, target, targetMode string) int {
-	var rels = "xl/worksheets/_rels/" + strings.ToLower(sheet) + ".xml.rels"
+	name, ok := f.sheetMap[trimSheetName(sheet)]
+	if !ok {
+		name = strings.ToLower(sheet) + ".xml"
+	}
+	var rels = "xl/worksheets/_rels/" + strings.TrimPrefix(name, "xl/worksheets/") + ".rels"
 	var sheetRels xlsxWorkbookRels
 	var rID = 1
 	var ID bytes.Buffer
 	ID.WriteString("rId")
 	ID.WriteString(strconv.Itoa(rID))
-	_, ok := f.XLSX[rels]
+	_, ok = f.XLSX[rels]
 	if ok {
 		ID.Reset()
 		xml.Unmarshal([]byte(f.readXML(rels)), &sheetRels)
@@ -129,7 +133,11 @@ func (f *File) addSheetRelationships(sheet, relType, target, targetMode string)
 // xl/worksheets/_rels/sheet%d.xml.rels by given worksheet name and relationship
 // index.
 func (f *File) deleteSheetRelationships(sheet, rID string) {
-	var rels = "xl/worksheets/_rels/" + strings.ToLower(sheet) + ".xml.rels"
+	name, ok := f.sheetMap[trimSheetName(sheet)]
+	if !ok {
+		name = strings.ToLower(sheet) + ".xml"
+	}
+	var rels = "xl/worksheets/_rels/" + strings.TrimPrefix(name, "xl/worksheets/") + ".rels"
 	var sheetRels xlsxWorkbookRels
 	xml.Unmarshal([]byte(f.readXML(rels)), &sheetRels)
 	for k, v := range sheetRels.Relationships {
@@ -374,16 +382,15 @@ func (f *File) getSheetRelationshipsTargetByID(sheet, rID string) string {
 //    xlsx, err := excelize.OpenFile("./Workbook.xlsx")
 //    if err != nil {
 //        fmt.Println(err)
-//        os.Exit(1)
+//        return
 //    }
 //    file, raw := xlsx.GetPicture("Sheet1", "A2")
 //    if file == "" {
-//        os.Exit(1)
+//        return
 //    }
 //    err := ioutil.WriteFile(file, raw, 0644)
 //    if err != nil {
 //        fmt.Println(err)
-//        os.Exit(1)
 //    }
 //
 func (f *File) GetPicture(sheet, cell string) (string, []byte) {

+ 0 - 1
rows.go

@@ -107,7 +107,6 @@ func (f *File) getTotalRowsCols(name string) (int, int) {
 //    err := xlsx.Save()
 //    if err != nil {
 //        fmt.Println(err)
-//        os.Exit(1)
 //    }
 //
 func (f *File) SetRowHeight(sheet string, rowIndex int, height float64) {

+ 2 - 5
sheet.go

@@ -314,7 +314,7 @@ func (f *File) GetSheetIndex(name string) int {
 //    xlsx, err := excelize.OpenFile("./Workbook.xlsx")
 //    if err != nil {
 //        fmt.Println(err)
-//        os.Exit(1)
+//        return
 //    }
 //    for index, name := range xlsx.GetSheetMap() {
 //        fmt.Println(index, name)
@@ -420,10 +420,7 @@ func (f *File) deleteSheetFromContentTypes(target string) {
 //    // Sheet1 already exists...
 //    index := xlsx.NewSheet("Sheet2")
 //    err := xlsx.CopySheet(1, index)
-//    if err != nil {
-//        fmt.Println(err)
-//        os.Exit(1)
-//    }
+//    return err
 //
 func (f *File) CopySheet(from, to int) error {
 	if from < 1 || to < 1 || from == to || f.GetSheetName(from) == "" || f.GetSheetName(to) == "" {