Commit Graph

203 Commits

Author SHA1 Message Date
Shugo Kawamura 983cd76485
This closes #1476, support double-byte chars for formula functions LEFT,RIGHT, LEN and MID (#1477) 2023-02-20 13:59:05 +08:00
jaby ad90cea78b
This closes #1469, fix cell resolver caused incorrect calculation result (#1470) 2023-02-15 21:38:11 +08:00
xuri 5429f131f8
This closes #1438, fix cell data type issue for formula calculation engine
- Update dependencies module
- Update unit tests
2023-01-08 00:23:53 +08:00
xuri f58dabd492
Breaking change: changed the function signature for 11 exported functions
* Change
    `func (f *File) NewConditionalStyle(style string) (int, error)`
    to
    `func (f *File) NewConditionalStyle(style *Style) (int, error)`
* Change
    `func (f *File) NewStyle(style interface{}) (int, error)`
     to
    `func (f *File) NewStyle(style *Style) (int, error)`
* Change
    `func (f *File) AddChart(sheet, cell, opts string, combo ...string) error`
     to
    `func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error`
* Change
    `func (f *File) AddChartSheet(sheet, opts string, combo ...string) error`
     to
    `func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error`
* Change
    `func (f *File) AddShape(sheet, cell, opts string) error`
     to
    `func (f *File) AddShape(sheet, cell string, opts *Shape) error`
* Change
    `func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) error`
     to
    `func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *PictureOptions) error`
* Change
    `func (f *File) AddTable(sheet, hCell, vCell, opts string) error`
     to
    `func (f *File) AddTable(sheet, reference string, opts *TableOptions) error`
* Change
    `func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error`
     to
    `func (sw *StreamWriter) AddTable(reference string, opts *TableOptions) error`
* Change
    `func (f *File) AutoFilter(sheet, hCell, vCell, opts string) error`
     to
    `func (f *File) AutoFilter(sheet, reference string, opts *AutoFilterOptions) error`
* Change
    `func (f *File) SetPanes(sheet, panes string) error`
     to
    `func (f *File) SetPanes(sheet string, panes *Panes) error`
* Change
    `func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error`
     to
    `func (sw *StreamWriter) AddTable(reference string, opts *TableOptions) error`
* Change
    `func (f *File) SetConditionalFormat(sheet, reference, opts string) error`
     to
    `func (f *File) SetConditionalFormat(sheet, reference string, opts []ConditionalFormatOptions) error`
* Add exported types:
  * AutoFilterListOptions
  * AutoFilterOptions
  * Chart
  * ChartAxis
  * ChartDimension
  * ChartLegend
  * ChartLine
  * ChartMarker
  * ChartPlotArea
  * ChartSeries
  * ChartTitle
  * ConditionalFormatOptions
  * PaneOptions
  * Panes
  * PictureOptions
  * Shape
  * ShapeColor
  * ShapeLine
  * ShapeParagraph
  * TableOptions
* This added support for set sheet visible as very hidden
* Return error when missing required parameters for set defined name
* Update unit test and comments
2022-12-30 00:50:08 +08:00
郭伟匡 6a5ee811ba
This closes #1425, breaking changes for sheet name (#1426)
- Checking and return error for invalid sheet name instead of trim invalid characters
- Add error return for the 4 functions: `DeleteSheet`, `GetSheetIndex`, `GetSheetVisible` and `SetSheetName`
- Export new error 4 constants: `ErrSheetNameBlank`, `ErrSheetNameInvalid`, `ErrSheetNameLength` and `ErrSheetNameSingleQuote`
- Rename exported error constant `ErrExistsWorksheet` to `ErrExistsSheet`
- Update unit tests for 90 functions: `AddChart`,  `AddChartSheet`, `AddComment`, `AddDataValidation`, `AddPicture`, `AddPictureFromBytes`, `AddPivotTable`, `AddShape`, `AddSparkline`, `AddTable`, `AutoFilter`, `CalcCellValue`, `Cols`, `DeleteChart`, `DeleteComment`, `DeleteDataValidation`, `DeletePicture`, `DeleteSheet`, `DuplicateRow`, `DuplicateRowTo`, `GetCellFormula`, `GetCellHyperLink`, `GetCellRichText`, `GetCellStyle`, `GetCellType`, `GetCellValue`, `GetColOutlineLevel`, `GetCols`, `GetColStyle`, `GetColVisible`, `GetColWidth`, `GetConditionalFormats`, `GetDataValidations`, `GetMergeCells`, `GetPageLayout`, `GetPageMargins`, `GetPicture`, `GetRowHeight`, `GetRowOutlineLevel`, `GetRows`, `GetRowVisible`, `GetSheetIndex`, `GetSheetProps`, `GetSheetVisible`, `GroupSheets`, `InsertCol`, `InsertPageBreak`, `InsertRows`, `MergeCell`, `NewSheet`, `NewStreamWriter`, `ProtectSheet`, `RemoveCol`, `RemovePageBreak`, `RemoveRow`, `Rows`, `SearchSheet`, `SetCellBool`, `SetCellDefault`, `SetCellFloat`, `SetCellFormula`, `SetCellHyperLink`, `SetCellInt`, `SetCellRichText`, `SetCellStr`, `SetCellStyle`, `SetCellValue`, `SetColOutlineLevel`, `SetColStyle`, `SetColVisible`, `SetColWidth`, `SetConditionalFormat`, `SetHeaderFooter`, `SetPageLayout`, `SetPageMargins`, `SetPanes`, `SetRowHeight`, `SetRowOutlineLevel`, `SetRowStyle`, `SetRowVisible`, `SetSheetBackground`, `SetSheetBackgroundFromBytes`, `SetSheetCol`, `SetSheetName`, `SetSheetProps`, `SetSheetRow`, `SetSheetVisible`, `UnmergeCell`, `UnprotectSheet` and
`UnsetConditionalFormat`
- Update documentation of the set style functions

Co-authored-by: guoweikuang <weikuang.guo@shopee.com>
2022-12-23 00:54:40 +08:00
devloppper dde6b9c001
This closes #1396, fix formula fn ADDRESS result error with empty worksheet name (#1397)
- Update unit tests

Co-authored-by: jayhoo <hujie@ynningneng.com>
2022-11-22 00:15:57 +08:00
xuri f44153ea46
This closes #1377, stream writer writes inline string type for string cell value
- Add `CellTypeFormula`, `CellTypeInlineString`, `CellTypeSharedString` and remove `CellTypeString` in `CellType` enumeration
- Unit tests updated
2022-10-25 10:24:45 +08:00
xuri 14c6a198ce
Support get cell value which contains a date in the ISO 8601 format
- Support set and get font color with indexed color
- New export variable `IndexedColorMapping`
- Fix getting incorrect page margin settings when the margin is 0
- Update unit tests and comments typo fixes
- ref #65, new formula functions: AGGREGATE and SUBTOTAL
2022-10-24 00:52:09 +08:00
gonghaibinx f843a9ea56
Fix the formula calculation result issue of the OR function (#1374)
Co-authored-by: gonghaibin <gonghaibin@qq.com>
2022-10-21 00:04:32 +08:00
xuri efcf599dfe
This closes #1360, closes #1361
- Fix default number format parse issue with a long string of digits
- Fix creating a sheet with an empty name cause a corrupted file
- The `GetCellStyle` function no longer return master cell style of the merge cell range
- Using the specialized name in variables and functions
2022-09-28 00:04:17 +08:00
davidborry bef49e40ee
This closes #1330 update non existing sheet error messages (#1331) 2022-08-28 00:16:41 +08:00
xuri d1e76fc432
This closes #1319, fix calculate error for formula with negative symbol
- Update unit test and comment for the functions
2022-08-17 10:59:52 +08:00
xuri a65c5846e4
This closes #1262, support for dependence formulas calculation
- Add export option `MaxCalcIterations` for specifies the maximum iterations for iterative calculation
- Update unit test for the database formula functions
2022-07-10 18:14:48 +08:00
xuri d74adcbb15
ref #65, new formula function: DGET 2022-07-03 15:31:24 +08:00
xuri 695db4eae0
ref #65, new formula functions: DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, and DVARP 2022-07-02 13:43:31 +08:00
xuri dd6c3905e0
ref #65, new formula function: DAVERAGE 2022-07-01 00:43:27 +08:00
xuri eee6607e47
ref #65, new formula functions: DMAX and DMIN 2022-06-28 23:18:48 +08:00
xuri 301f7bc217
This closes #1260, fixes compiling issue under 32-bit, and new formula functions
- ref #65, new formula functions: DCOUNT and DCOUNTA
- support percentile symbol in condition criteria expression
- this update dependencies module
2022-06-27 21:00:59 +08:00
xuri 2e1b0efadc
ref #65, new formula function: HYPERLINK 2022-06-24 01:03:19 +08:00
xuri 61c71caf4f
ref #65, new formula function: EUROCONVERT 2022-06-22 20:17:22 +08:00
xuri 7819cd7fec
ref #65, new formula function: STEYX 2022-06-20 22:05:23 +08:00
xuri 5f4131aece
ref #65, new formula function: DAYS360 2022-06-17 00:03:31 +08:00
xuri b69da76063
ref #65, new formula functions: NETWORKDAYS, NETWORKDAYS.INTL, and WORKDAY 2022-06-16 00:01:32 +08:00
ww1516123 7f570c74f8
Fix the problem of multi arguments calculation (#1253) 2022-06-14 15:04:43 +08:00
xuri d383f0ae6e
ref #65: new formula function WORKDAY.INTL 2022-06-13 00:05:52 +08:00
xuri f5d3d59d8c
ref #65: new formula function EOMONTH 2022-06-11 14:08:21 +08:00
xuri 980fffa2b6
ref #65: new formula function EDATE 2022-06-10 00:10:22 +08:00
xuri 604a01bf6b
ref #65: new formula function WEEKNUM 2022-06-09 08:16:48 +08:00
xuri 1c167b96a3
Improves the calculation engine, docs update, and adds the dependabot
- Initialize array formula support for the formula calculation engine
- Update example and unit test of `AddPivotTable`
- Update the supported hash algorithm of ProtectSheet
2022-05-26 00:15:28 +08:00
xuri afb2d27c90
This fix formula calculation accuracy issue and panic when set pane
- Fix `GROWTH` and `TREND` calculation accuracy issue
- Fix panic when add pane on empty sheet views worksheet
- New exported constants `MinFontSize`
2022-05-23 13:02:11 +08:00
xuri 0f7a0c8f3b
Optimization formula calculation performance and update README card badge 2022-04-24 23:43:19 +08:00
xuri 81d9362b4f
ref #65, new formula function: CONVERT 2022-04-20 00:01:39 +08:00
xuri 0b8965dba9
ref #65, initial formula functions: GROWTH and TREND 2022-04-17 23:49:37 +08:00
xuri 6fa950a4f8
ref #65, new formula functions: SKEW.P and SLOPE, remove no-required format default 2022-04-16 13:53:16 +08:00
xuri 66776730b6
ref #65, new formula functions: PEARSON and RSQ 2022-04-15 00:27:47 +08:00
xuri c0d341706d
ref #65, new formula functions: MINVERSE and MMULT 2022-04-14 00:08:26 +08:00
xuri 396cf99d45
ref #65, new formula functions: COVARIANCE.S and STDEVPA 2022-04-12 08:18:09 +08:00
xuri c1940c2a1e
This includes new formula functions support, dependencies upgrade, and bug fix
- Fix page setup fields parsing issue
- Go Modules dependencies upgrade
- Ref #65, CONFIDENCE.T and PHI
- Ref #1198, Fix the issue that the chart axis maximum and minimum didn't work when the value is 0
2022-04-11 00:04:00 +08:00
xuri 9b8f1a15e1
ref #65, new formula functions: MODE.MULT and MODE.SNGL 2022-04-07 08:16:55 +08:00
xuri 5bf4bce9d4
ref #65, #1196: fix the compatibility issue and added new formula function
- New formula functions: MODE and T.TEST
2022-04-06 00:03:22 +08:00
xuri 26174a2c43
This closes #1196, fix the compatibility issue and added new formula function
ref #65, new formula functions: TINV and TTEST
2022-04-05 00:03:46 +08:00
xuri ecbc6e2fde
ref #65, new formula functions: T.INV and T.INV.2T
- Typo fixed
2022-04-04 00:21:33 +08:00
xuri be8fc0a4c5
ref #65, new formula functions: T.DIST.2T and T.DIST.RT
- Update GitHub Action settings
2022-04-03 01:18:32 +08:00
xuri b8345731a4
ref #65, new formula functions: T.DIST and TDIST 2022-04-02 00:04:21 +08:00
xuri d9b5afc1ac
ref #65, new formula functions: NEGBINOM.DIST and NEGBINOMDIST 2022-04-01 00:09:36 +08:00
xuri 18c48d8291
ref #65, new formula functions: CHISQ.INV and CHISQ.INV.RT 2022-03-31 00:04:40 +08:00
xuri 29d63f6ae0
ref #65, new formula functions: HYPGEOM.DIST and HYPGEOMDIST 2022-03-30 00:01:38 +08:00
xuri 0030e800ca
ref #65, new formula functions: F.TEST and FTEST 2022-03-29 00:03:58 +08:00
xuri 46336bc788
ref #65, new formula functions: CHISQ.DIST.RT CHISQ.DIST and GAMMALN.PRECISE 2022-03-28 08:13:47 +08:00
xuri f8d763d0bd
ref #65, new formula functions: CHITEST and CHISQ.TEST 2022-03-27 11:53:45 +08:00