summaryrefslogtreecommitdiff
path: root/excelize.go
diff options
context:
space:
mode:
Diffstat (limited to 'excelize.go')
-rw-r--r--excelize.go38
1 files changed, 28 insertions, 10 deletions
diff --git a/excelize.go b/excelize.go
index d43f123..ed36589 100644
--- a/excelize.go
+++ b/excelize.go
@@ -64,14 +64,20 @@ func (f *File) SetCellValue(sheet string, axis string, value interface{}) {
func (f *File) SetCellInt(sheet string, axis string, value int) {
axis = strings.ToUpper(axis)
var xlsx xlsxWorksheet
+ name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
+ xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
+ if xlsx.MergeCells != nil {
+ for i := 0; i < len(xlsx.MergeCells.Cells); i++ {
+ if checkCellInArea(axis, xlsx.MergeCells.Cells[i].Ref) {
+ axis = strings.Split(xlsx.MergeCells.Cells[i].Ref, ":")[0]
+ }
+ }
+ }
col := string(strings.Map(letterOnlyMapF, axis))
row, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))
xAxis := row - 1
yAxis := titleToNumber(col)
- name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
- xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
-
rows := xAxis + 1
cell := yAxis + 1
@@ -89,18 +95,24 @@ func (f *File) SetCellInt(sheet string, axis string, value int) {
// of characters that a cell can contain 32767 characters.
func (f *File) SetCellStr(sheet string, axis string, value string) {
axis = strings.ToUpper(axis)
+ var xlsx xlsxWorksheet
+ name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
+ xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
+ if xlsx.MergeCells != nil {
+ for i := 0; i < len(xlsx.MergeCells.Cells); i++ {
+ if checkCellInArea(axis, xlsx.MergeCells.Cells[i].Ref) {
+ axis = strings.Split(xlsx.MergeCells.Cells[i].Ref, ":")[0]
+ }
+ }
+ }
if len(value) > 32767 {
value = value[0:32767]
}
- var xlsx xlsxWorksheet
col := string(strings.Map(letterOnlyMapF, axis))
row, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))
xAxis := row - 1
yAxis := titleToNumber(col)
- name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
- xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
-
rows := xAxis + 1
cell := yAxis + 1
@@ -119,14 +131,20 @@ func (f *File) SetCellStr(sheet string, axis string, value string) {
func (f *File) SetCellDefault(sheet string, axis string, value string) {
axis = strings.ToUpper(axis)
var xlsx xlsxWorksheet
+ name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
+ xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
+ if xlsx.MergeCells != nil {
+ for i := 0; i < len(xlsx.MergeCells.Cells); i++ {
+ if checkCellInArea(axis, xlsx.MergeCells.Cells[i].Ref) {
+ axis = strings.Split(xlsx.MergeCells.Cells[i].Ref, ":")[0]
+ }
+ }
+ }
col := string(strings.Map(letterOnlyMapF, axis))
row, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))
xAxis := row - 1
yAxis := titleToNumber(col)
- name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
- xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
-
rows := xAxis + 1
cell := yAxis + 1