diff options
author | xuri <xuri.me@gmail.com> | 2021-07-05 00:03:56 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2021-07-05 00:03:56 +0800 |
commit | 544ef18a8cb9949fcb8833c6d2816783c90f3318 (patch) | |
tree | 88bb3eaa9d92522d3b5c4eeb052210c26bc4c99f /cell.go | |
parent | 0e02329bedf6648259fd219642bb907bdb07fd21 (diff) |
- Support concurrency iterate rows and columns
- Rename exported field `File.XLSX` to `File.Pkg`
- Exported error message
Diffstat (limited to 'cell.go')
-rw-r--r-- | cell.go | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -13,7 +13,6 @@ package excelize import ( "encoding/xml" - "errors" "fmt" "reflect" "strconv" @@ -187,6 +186,8 @@ func (f *File) SetCellInt(sheet, axis string, value int) error { if err != nil { return err } + ws.Lock() + defer ws.Unlock() cellData.S = f.prepareCellStyle(ws, col, cellData.S) cellData.T, cellData.V = setCellInt(value) return err @@ -262,6 +263,8 @@ func (f *File) SetCellStr(sheet, axis, value string) error { if err != nil { return err } + ws.Lock() + defer ws.Unlock() cellData.S = f.prepareCellStyle(ws, col, cellData.S) cellData.T, cellData.V = f.setCellString(value) return err @@ -742,7 +745,7 @@ func (f *File) SetSheetRow(sheet, axis string, slice interface{}) error { // Make sure 'slice' is a Ptr to Slice v := reflect.ValueOf(slice) if v.Kind() != reflect.Ptr || v.Elem().Kind() != reflect.Slice { - return errors.New("pointer to slice expected") + return ErrParameterInvalid } v = v.Elem() @@ -762,8 +765,6 @@ func (f *File) SetSheetRow(sheet, axis string, slice interface{}) error { // getCellInfo does common preparation for all SetCell* methods. func (f *File) prepareCell(ws *xlsxWorksheet, sheet, cell string) (*xlsxC, int, int, error) { - ws.Lock() - defer ws.Unlock() var err error cell, err = f.mergeCellsParser(ws, cell) if err != nil { @@ -775,7 +776,8 @@ func (f *File) prepareCell(ws *xlsxWorksheet, sheet, cell string) (*xlsxC, int, } prepareSheetXML(ws, col, row) - + ws.Lock() + defer ws.Unlock() return &ws.SheetData.Row[row-1].C[col-1], col, row, err } |