summaryrefslogtreecommitdiff
path: root/table.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2020-07-18 15:15:16 +0800
committerxuri <xuri.me@gmail.com>2020-07-18 15:15:16 +0800
commitc922c32fb7571d3d40d3244e5635142bc390a3db (patch)
tree12c2a1541458963caca5f7714d7861c42637d4c6 /table.go
parent820a314cfbcaa4d32401b0b6c67bf65f064483ec (diff)
support parse and generate XML element namespace dynamic, fix #651
Diffstat (limited to 'table.go')
-rw-r--r--table.go26
1 files changed, 16 insertions, 10 deletions
diff --git a/table.go b/table.go
index d59322c..e26bbe2 100644
--- a/table.go
+++ b/table.go
@@ -83,9 +83,11 @@ func (f *File) AddTable(sheet, hcell, vcell, format string) error {
// Add first table for given sheet.
sheetRels := "xl/worksheets/_rels/" + strings.TrimPrefix(f.sheetMap[trimSheetName(sheet)], "xl/worksheets/") + ".rels"
rID := f.addRels(sheetRels, SourceRelationshipTable, sheetRelationshipsTableXML, "")
- f.addSheetTable(sheet, rID)
- err = f.addTable(sheet, tableXML, hcol, hrow, vcol, vrow, tableID, formatSet)
- if err != nil {
+ if err = f.addSheetTable(sheet, rID); err != nil {
+ return err
+ }
+ f.addSheetNameSpace(sheet, SourceRelationship)
+ if err = f.addTable(sheet, tableXML, hcol, hrow, vcol, vrow, tableID, formatSet); err != nil {
return err
}
f.addContentTypePart(tableID, "table")
@@ -106,16 +108,20 @@ func (f *File) countTables() int {
// addSheetTable provides a function to add tablePart element to
// xl/worksheets/sheet%d.xml by given worksheet name and relationship index.
-func (f *File) addSheetTable(sheet string, rID int) {
- xlsx, _ := f.workSheetReader(sheet)
+func (f *File) addSheetTable(sheet string, rID int) error {
+ ws, err := f.workSheetReader(sheet)
+ if err != nil {
+ return err
+ }
table := &xlsxTablePart{
RID: "rId" + strconv.Itoa(rID),
}
- if xlsx.TableParts == nil {
- xlsx.TableParts = &xlsxTableParts{}
+ if ws.TableParts == nil {
+ ws.TableParts = &xlsxTableParts{}
}
- xlsx.TableParts.Count++
- xlsx.TableParts.TableParts = append(xlsx.TableParts.TableParts, table)
+ ws.TableParts.Count++
+ ws.TableParts.TableParts = append(ws.TableParts.TableParts, table)
+ return err
}
// addTable provides a function to add table by given worksheet name,
@@ -159,7 +165,7 @@ func (f *File) addTable(sheet, tableXML string, x1, y1, x2, y2, i int, formatSet
name = "Table" + strconv.Itoa(i)
}
t := xlsxTable{
- XMLNS: NameSpaceSpreadSheet,
+ XMLNS: NameSpaceSpreadSheet.Value,
ID: i,
Name: name,
DisplayName: name,