diff --git a/excelize.go b/excelize.go index cd5e86e..fa9c004 100644 --- a/excelize.go +++ b/excelize.go @@ -135,23 +135,22 @@ func (f *File) SetCellInt(sheet, axis string, value int) { completeRow(xlsx, rows, cell) completeCol(xlsx, rows, cell) - xlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell) + xlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S) xlsx.SheetData.Row[xAxis].C[yAxis].T = "" xlsx.SheetData.Row[xAxis].C[yAxis].V = strconv.Itoa(value) } // prepareCellStyle provides function to prepare style index of cell in // worksheet by given column index. -func (f *File) prepareCellStyle(xlsx *xlsxWorksheet, col int) int { - s := 0 - if xlsx.Cols != nil { +func (f *File) prepareCellStyle(xlsx *xlsxWorksheet, col, style int) int { + if xlsx.Cols != nil && style == 0 { for _, v := range xlsx.Cols.Col { if v.Min <= col && col <= v.Max { - s = v.Style + style = v.Style } } } - return s + return style } // SetCellStr provides function to set string type value of a cell. Total number @@ -183,7 +182,7 @@ func (f *File) SetCellStr(sheet, axis, value string) { } } } - xlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell) + xlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S) xlsx.SheetData.Row[xAxis].C[yAxis].T = "str" xlsx.SheetData.Row[xAxis].C[yAxis].V = value } @@ -205,7 +204,7 @@ func (f *File) SetCellDefault(sheet, axis, value string) { completeRow(xlsx, rows, cell) completeCol(xlsx, rows, cell) - xlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell) + xlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S) xlsx.SheetData.Row[xAxis].C[yAxis].T = "" xlsx.SheetData.Row[xAxis].C[yAxis].V = value } diff --git a/test/Workbook1.xlsx b/test/Workbook1.xlsx index 909887a..8e7c88a 100644 Binary files a/test/Workbook1.xlsx and b/test/Workbook1.xlsx differ