xuri
c7acf4fafe
Support update data validations on inserting/deleting columns/rows
2023-11-11 00:04:05 +08:00
Anton Petrov
fe639faa45
This closes #1125 , support update drawing objects on inserting/deleting columns/rows ( #1127 )
2023-11-06 09:51:19 +08:00
壹次心
27f1056929
This closes #1218 and closes #1689 ( #1634 )
...
- Introduce new exported function GetPictureCells
- Upgrade dependencies module golang.org/x/net from 0.16.0 to 0.17.0
- Update unit tests
2023-10-13 00:06:07 +08:00
xuri
87a00e4f7e
This closed #1680 , fixing a potential issue that stream reader temporary files can not be clear
...
- Delete image files from the workbook internally when deleting pictures to reduce generated workbook size and resolve potential security issues
2023-10-09 00:14:56 +08:00
xuri
e3b7dad69a
Introduce the new exported function `AddSlicer` for adding table slicer
...
- Fix a v2.8.0 regression bug, generate workbook corruption caused by incorrect MRU colors style parts
- Fix corrupted workbooks generated when adding tables in some cases
- Added several exported extension list child element URI constants
- Move part of the internal constant and variables definition to the template source code file
- Updated unit tests
2023-09-16 12:21:11 +08:00
xuri
15614badfc
This closes #1628 , fix the GetPictures function returns pictures doesn't correct in some cases
2023-08-25 01:06:41 +08:00
xuri
ae17fa87d5
This ref #1585 , support to read one cell anchor pictures and improve date and time number format
...
- Support apply date and time number format with 16 languages: Persian, Polish, Portuguese, Punjabi, Quechua, Romanian, Romansh, Sakha, Sami, Sanskrit, Scottish Gaelic, Serbian, Sesotho sa Leboa, Setswana, Sindhi, Sinhala and Slovak
- Update the unit test and dependencies modules
2023-08-09 00:11:06 +08:00
xuri
8d996ca138
This closes #1582 , fixes the formula calculation bug, and improves form controls
...
- Fix incorrect formula calculate results on a nested argument function which returns a numeric result
- Add a new exported error variable `ErrorFormControlValue`
- Rename exported enumeration `FormControlCheckbox` to `FormControlCheckBox`
- Rename exported enumeration `FormControlRadio` to `FormControlOptionButton`
- The `AddFormControl` function supports new 5 form controls: spin button, check box, group box, label, and scroll bar
- Update documentation for the `GraphicOptions` data type, `AddFormControl` and `NewStreamWriter` functions
- Update the unit tests
2023-07-21 00:03:37 +08:00
chengxinyao
9bc3fd7e9f
This optimize the code, simplify unit test and drawing object position calculation ( #1561 )
...
Co-authored-by: xinyao.cheng <xinyao.cheng@zerone.com.cn>
2023-06-14 22:49:40 +08:00
xuri
8e891b52c6
This closes #1560 , fix incorrect row number when get object position
2023-06-12 00:09:40 +08:00
xuri
478b528af1
Breaking changes: changed the function signature for 2 exported functions
...
- Change
`func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error`
to
`func (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error`
- Change
`func (f *File) GetPicture(sheet, cell string) (string, []byte, error)`
to
`func (f *File) GetPictures(sheet, cell string) ([]Picture, error)`
Co-authored-by: huangsk <645636204@qq.com>
2023-03-19 20:29:35 +08:00
xuri
1f69f6b24a
Add support for insert BMP format images
...
- Add support for workbook function groups
- Update code and docs for the build-in currency number format
- Update unit tests
2023-02-05 01:30:38 +08:00
xuri
b39626fae9
This fixed worksheet protection issue
...
- Update example code in the documentation
- Update unit tests
- Rename `PictureOptions` to `GraphicOptions`
- Adjust partial options fields data types for the `PictureOptions` and `Shape` structure
- Update dependencies module
2023-01-02 11:47:31 +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
xuri
ac564afa56
Remove internal error log print, throw XML deserialize error
2022-11-13 00:40:04 +08:00
xuri
bd5dd17673
This is a breaking change, remove partial internal error log print, throw XML deserialize error
...
- Add error return value for the `GetComments`, `GetDefaultFont` and `SetDefaultFont` functions
- Update unit tests
2022-11-12 00:16:23 +08:00
xuri
db2d084ada
This closes #1204 , breaking changes for add comments
...
- Allowing insert SVG format images
- Unit tests updated
2022-11-02 08:45:06 +08:00
xuri
7363c1e333
Go 1.16 and later required, migration of deprecation package `ioutil`
...
- Improving performance for stream writer `SetRow` function, reduces memory usage over and speedup about 19%
- Update dependencies module
- Update GitHub workflow
2022-10-13 00:13:36 +08:00
xuri
3f702999e6
Using the specialized name in a variable and making comments clear
...
- Add JSON tags for `AppProperties`, `PivotTableOption` and `PivotTableField` structure
2022-09-18 00:07:15 +08:00
xuri
961a3e8933
Fix get image content was empty after inserting image
2022-09-06 14:38:09 +08:00
davidborry
bef49e40ee
This closes #1330 update non existing sheet error messages ( #1331 )
2022-08-28 00:16:41 +08:00
xuri
ab12307393
This made library allowing insert EMZ and WMZ format image
...
- Update dependencies module
2022-08-21 01:09:32 +08:00
xuri
40ed1d1b81
Fix potential file corrupted when changing cell value or the col/row
...
- Remove shared formula subsequent cell when setting the cell values
- Support adjust table range when removing and inserting column/row
2022-07-16 12:50:40 +08:00
xuri
c2311ce87d
This made library allowing insert WMF format image
2022-05-14 00:54:36 +08:00
xuri
0c3fd0223c
This closes #1225 , allowing insert EMF format images
2022-05-13 01:03:40 +08:00
xuri
94f197c4fe
This improved formula calculate precision and added zero placeholder number format support
2022-03-19 00:05:47 +08:00
xuri
3ee3c38f9c
Fix file corrupted in some cases, check file extension and format code
...
Fix file corrupted when save as in XLAM / XLSM / XLTM / XLTX extension in some case
New exported error ErrWorkbookExt has been added, and check file extension on save the workbook
Format source code with `gofumpt`
2022-01-23 00:48:26 +08:00
xuri
44a13aa402
Export 7 errors so users can act differently on different type of errors
2021-12-07 00:26:53 +08:00
xuri
790c363cce
This closes #833 , closes #845 , and closes #1022 , breaking changes
...
- Close spreadsheet and row's iterator required
- New options `WorksheetUnzipMemLimit` have been added
- Improve streaming reading performance, memory usage decrease about 93.7%
2021-09-19 11:06:54 +08:00
xuri
48c16de8bf
Improve security and simplify code
...
- Make variable name more semantic
- Reduce cyclomatic complexities for the formula calculate function
- Support specified unzip size limit on open file options, avoid zip bombs vulnerability attack
- Typo fix for documentation and error message
2021-08-15 00:06:40 +08:00
xuri
e9ae9b45b2
change go module import path to github.com/xuri/excelize
2021-07-28 00:38:09 +08:00
xuri
544ef18a8c
- Support concurrency iterate rows and columns
...
- Rename exported field `File.XLSX` to `File.Pkg`
- Exported error message
2021-07-05 00:03:56 +08:00
xuri
be12cc27f1
This closes #652 , new SetColWidth API, support set column width in stream writing mode, and export error message
2021-05-10 00:09:24 +08:00
xuri
2af96c0714
#65 fn: N, PERCENTILE.INC and T
...
typo fixed
2021-03-30 23:02:22 +08:00
xuri
77978ac68d
This closes #657 and closes #748 , AddChart support custom marker symbol and symbol size, fix AddPicture auto fit failure with multi merged cells
2020-12-14 20:56:51 +08:00
xuri
0aa1510694
update docs and improve compatibility
2020-07-11 02:31:02 +08:00
xuri
98221a332f
Merge pull request #410
2020-05-17 17:36:53 +08:00
xuri
cbc3fd21b7
Resolve #455 , init delete picture from spreadsheet support
2020-01-22 01:08:18 +08:00
xuri
1666d04559
optimization: checking error in unit tests
2019-12-24 01:09:28 +08:00
xuri
ae2865d923
Improve code coverage unit tests
2019-12-22 00:02:09 +08:00
xuri
54def7eaad
Add TIF, TIFF format images and more detailed error information when open the encrypted file
2019-06-27 21:58:14 +08:00
xuri
a88459d5f1
add unit tests to functions
2019-04-16 10:57:21 +08:00
xuri
f2df344739
Resolve #369,#370
...
add error return value
exported functions:
GetMergeCells
ProtectSheet
UnprotectSheet
UpdateLinkedValue
GetMergeCells
SetSheetVisible
inner functions:
workSheetReader
copySheet
2019-04-15 11:22:57 +08:00
Michael
a94dcb9918
Do not save duplicate images
...
Adding the same image should create a drawing referencing the
already stored copy of the image.
Closes #359
2019-03-25 13:17:53 -05:00
xuri
f0244c0016
Add unit test to improve testing coverage
2019-03-24 13:08:32 +08:00
xuri
40ff5dc1a7
refactor: handler error instead of panic,
...
Exported functions:
SetCellStyle
InsertCol
RemoveCol
RemoveRow
InsertRow
DuplicateRow
DuplicateRowTo
SetRowHeight
GetRowHeight
GetCellValue
GetCellFormula
GetCellHyperLink
SetCellHyperLink
SetCellInt
SetCellBool
SetCellFloat
SetCellStr
SetCellDefault
GetCellStyle
SetCellValue
MergeCell
SetSheetRow
SetRowVisible
GetRowVisible
SetRowOutlineLevel
GetRowOutlineLevel
GetRows
Columns
SearchSheet
AddTable
GetPicture
AutoFilter
GetColVisible
SetColVisible
GetColOutlineLevel
SetColOutlineLevel
SetColWidth
GetColWidth
inner functions:
adjustHelper
adjustMergeCells
adjustAutoFilter
prepareCell
setDefaultTimeStyle
timeToExcelTime
addDrawingChart
addDrawingVML
addDrawingPicture
getTotalRowsCols
checkRow
addDrawingShape
addTable
2019-03-23 20:08:06 +08:00
Michael
2874d75555
Add benchmark for adding images to sheet ( #367 )
...
* Add benchmark for adding images to sheet
This should help track performance regressions in future changes.
* Only transform sheet name if necessary
2019-03-23 16:09:48 +08:00