diff options
| author | xuri <xuri.me@gmail.com> | 2021-09-05 11:59:50 +0800 | 
|---|---|---|
| committer | xuri <xuri.me@gmail.com> | 2021-09-05 11:59:50 +0800 | 
| commit | 32b23ef42d3ecb393e102c5f63ab5125db354435 (patch) | |
| tree | e73ec4e2e062d15ca6d53407039ddb3004942995 /col.go | |
| parent | 2616aa88cb2b1e45c03ada60093f4dfe7fabfb87 (diff) | |
This closes #998
- Support text comparison in the formula, also ref #65
- `GetCellValue`, `GetRows`, `GetCols`, `Rows` and `Cols` support to specify read cell with raw value, ref #621
- Add missing properties for the cell formula
- Update the unit test for the `CalcCellValue`
Diffstat (limited to 'col.go')
| -rw-r--r-- | col.go | 10 | 
1 files changed, 6 insertions, 4 deletions
@@ -34,6 +34,7 @@ const (  type Cols struct {  	err                                  error  	curCol, totalCol, stashCol, totalRow int +	rawCellValue                         bool  	sheet                                string  	f                                    *File  	sheetXML                             []byte @@ -54,14 +55,14 @@ type Cols struct {  //        fmt.Println()  //    }  // -func (f *File) GetCols(sheet string) ([][]string, error) { +func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error) {  	cols, err := f.Cols(sheet)  	if err != nil {  		return nil, err  	}  	results := make([][]string, 0, 64)  	for cols.Next() { -		col, _ := cols.Rows() +		col, _ := cols.Rows(opts...)  		results = append(results, col)  	}  	return results, nil @@ -79,7 +80,7 @@ func (cols *Cols) Error() error {  }  // Rows return the current column's row values. -func (cols *Cols) Rows() ([]string, error) { +func (cols *Cols) Rows(opts ...Options) ([]string, error) {  	var (  		err              error  		inElement        string @@ -89,6 +90,7 @@ func (cols *Cols) Rows() ([]string, error) {  	if cols.stashCol >= cols.curCol {  		return rows, err  	} +	cols.rawCellValue = parseOptions(opts...).RawCellValue  	d := cols.f.sharedStringsReader()  	decoder := cols.f.xmlNewDecoder(bytes.NewReader(cols.sheetXML))  	for { @@ -123,7 +125,7 @@ func (cols *Cols) Rows() ([]string, error) {  				if cellCol == cols.curCol {  					colCell := xlsxC{}  					_ = decoder.DecodeElement(&colCell, &xmlElement) -					val, _ := colCell.getValueFrom(cols.f, d) +					val, _ := colCell.getValueFrom(cols.f, d, cols.rawCellValue)  					rows = append(rows, val)  				}  			}  | 
