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
MJacred
6429588e14
adjust `ErrColumnNumber`, rename `TotalColumns` to `MaxColumns` and add new constant `MinColumns` ( #1272 )
...
Signed-off-by: Benjamin Lösch <loesch.benny92@gmx.de>
2022-07-14 23:36:43 +08:00
Eagle Xiang
1dbed64f10
This closes #1269 , made the `NewStreamWriter` function case insensitive to worksheet name
...
Co-authored-by: xiangyz <xiangyz@dustess.com>
2022-07-06 20:39:10 +08:00
xuri
852f211970
This closes #1257 , fix incorrect worksheet header footer fields order
2022-06-21 20:08:47 +08:00
Eng Zer Jun
6bcf5e4ede
refactor: replace strings.Replace with strings.ReplaceAll ( #1250 )
...
strings.ReplaceAll(s, old, new) is a wrapper function for
strings.Replace(s, old, new, -1). But strings.ReplaceAll is more
readable and removes the hardcoded -1.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-06-12 00:19:12 +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
0c3fd0223c
This closes #1225 , allowing insert EMF format images
2022-05-13 01:03:40 +08:00
xuri
8a335225c7
Format code, update documentation and remove exported variable `XMLHeaderByte`
2022-03-24 00:19:30 +08:00
xuri
f0cb29cf66
This closes #1162 , improve the compatibility with alternate content
...
Preserve alternate content in the workbook, worksheet, and drawingML
2022-03-05 14:48:34 +08:00
xuri
f87c39c41d
This closes #1148 , resolve limitations when adding VBA project to the workbook
...
Added two exported functions `SetWorkbookPrOptions` and `GetWorkbookPrOptions` to support setting and getting the code name property of the workbook
Re-order fields of the workbook properties group to improve the compatibility
Go Modules dependencies upgrade
Put workbook related operating in new `workbook.go` source code
Library introduction docs block updated
2022-02-17 00:09:11 +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
b96329cc88
Breaking change for data validation and fixed #1117
...
- Remove second useless parameter `isCurrentSheet` of the function `SetSqrefDropList`
- Fix missing page setup of worksheet after re-saving the spreadsheet
2022-01-12 00:18:15 +08:00
xuri
2245fccca0
Typo fix, rename exported constants, dependencies modules and copyright update
...
Rename exported constants `NameSpaceDublinCoreMetadataIntiative` to `NameSpaceDublinCoreMetadataInitiative`
2022-01-09 00:20:42 +08:00
Jonham.Chen
af5c4d00e8
feat: implement SHA-512 algorithm to ProtectSheet ( #1115 )
2022-01-08 10:32:13 +08:00
xuri
89b85934f6
This closes #1096 , memory usage optimization and another 4 changes
...
- Unzip shared string table to system temporary file when large inner XML, reduce memory usage about 70%
- Remove unnecessary exported variable `XMLHeader`, we can using `encoding/xml` package's `xml.Header` instead of it
- Using constant instead of inline text for default XML path
- Rename exported option field `WorksheetUnzipMemLimit` to `UnzipXMLSizeLimit`
- Unit test and documentation updated
2021-12-27 23:49:28 +08:00
xuri
577a07f08c
Simplify code and update unit test
...
Improve unit test coverage for the functions: `NewStyle`, `SetActiveSheet`, `SearchSheet` and `deleteAndAdjustDefinedNames`
Simplify code and add comments for the function: `deleteAndAdjustDefinedNames`
2021-12-03 00:19:11 +08:00
Michael Wiesenbauer
aa359f1c74
refactor DeleteSheet for better readability ( #1078 )
...
Signed-off-by: Michael Wiesenbauer <michael.wiesenbauer@ambos.io>
Co-authored-by: Michael Wiesenbauer <michael.wiesenbauer@fau.de>
2021-12-02 22:14:57 +08:00
xuri
6b277c61d2
Fix sheet deletion fail in some case
2021-11-18 08:06:14 +08:00
xuri
bc3c7d51a2
ref #65 : new formula function PRICE
...
- fix COUPPCD result accuracy issue
- update close spreadsheet example in documentation and README
2021-11-17 00:25:36 +08:00
xuri
bda8e7f812
This closes #1061 , support multi-byte language on set header footer
...
typo fixed and simplify code for read the data values arguments of formula functions
2021-11-16 00:40:44 +08:00
xuri
57275db22e
This closes #1057 , merge column styles to reduce spreadsheet size
2021-11-14 00:17:31 +08:00
Sean Liang
32548a6cac
return immediately when matched for efficiency ( #1049 )
2021-11-03 15:13:46 +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
32b23ef42d
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`
2021-09-05 11:59:50 +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
three
f6f14f507e
Speed up merge cells
2021-08-13 01:32:44 +08:00
xuri
7dbf88f221
This closes #971 , closes #972 and closes #974
...
- Escape XML character in the drop list
- Fix incorrect character count limit in the drop list
- Fix Excel time parse issue in some case
- Fix custom number format month parse issue in some case
- Fix corrupted file generated caused by concurrency adding pictures
2021-07-29 00:03:57 +08:00
xuri
5ce3fe8cb8
Improvement compatibility with invalid first-page number attribute in the page layout
2021-07-21 23:24:49 +08:00
xuri
fbcfdeae90
This closes #879 , fix delete defined name failed in some case
2021-07-15 23:24:01 +08:00
xuri
b14b74bf56
This closes #873 , make the sheet names are not case sensitive for `NewSheet`, `GetSheetIndex`, `DeleteSheet`
2021-07-10 23:47:35 +08:00
xuri
90d200a10b
Make the functions `SetSheetRow`, `New Style` and `SetCellStyle` concurrency safety
2021-07-07 00:57:43 +08:00
xuri
b7fece5173
Support concurrency add picture
2021-07-06 00:31:04 +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
0e02329bed
This closes #861 , support concurrency get cell picture and remove unused internal function `getSheetNameByID`
2021-07-04 12:13:06 +08:00
vettich
5ec61310dc
fix: LocalSheetID in DefinedName should be equal to SheetIndex instead of SheetID ( #868 )
2021-07-03 14:13:26 +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
0e0237e62d
compatibility with non-standard page setup attributes
2021-05-07 23:08:58 +08:00
xuri
438fd4b3f9
This closes #834 , fix invalid file path and duplicate namespace when re-creating worksheet
2021-05-06 22:09:12 +08:00
xuri
f8f699a172
Go 1.15 and later required, #65 fn: IMABS, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMEXP, IMLN and IMLOG10
2021-04-04 15:29:43 +08:00
xuri
2af96c0714
#65 fn: N, PERCENTILE.INC and T
...
typo fixed
2021-03-30 23:02:22 +08:00
David
d08a6d2437
updated SetDefinedName's localSheetId attr to use sheetIndex
...
Excelize 2.3.2 OUT:
```
<sheets>
<sheet name="Q-P-QP-11" sheetId="55" r:id="rId1"/>
<sheet name="Q-P-QP-12" sheetId="53" r:id="rId2"/>
<sheet name="Q-P-QP-13" sheetId="54" r:id="rId3"/>
<sheet name="Q-P-RN-12" sheetId="56" r:id="rId4"/>
<sheet name="Q-P-RN-13" sheetId="57" r:id="rId5"/>
<sheet name="C-C-QP-11-12-13-RN-12-13" sheetId="50" r:id="rId6"/>
<sheet name="E-T-QP-11-12-13" sheetId="31" r:id="rId7"/>
<sheet name="E-T-BK" sheetId="60" r:id="rId8"/>
<sheet name="E-A-RN-12-13" sheetId="43" r:id="rId9"/>
<sheet name="F1-A-QP-11-12-13" sheetId="1" r:id="rId10"/>
<sheet name="F2-A-QP-11-12-13" sheetId="23" r:id="rId11"/>
<sheet name="C-A-QP-12-13-RN-12-13" sheetId="48" r:id="rId12"/>
<sheet name="C-T-QP-12-13" sheetId="7" r:id="rId13"/>
<sheet name="R-T-QP-12-RN-12-13" sheetId="45" r:id="rId14"/>
<sheet name="C-T-QP-11" sheetId="58" r:id="rId15"/>
<sheet name="R-T-QP-11" sheetId="3" r:id="rId16"/>
<sheet name="A-T-QP-11-12-RN-12" sheetId="13" r:id="rId17"/>
<sheet name="A2-T-RN-13" sheetId="42" r:id="rId18"/>
<sheet name="ap-T-QP-11" sheetId="59" r:id="rId19"/>
<sheet name="B-A-QP-12-13" sheetId="32" r:id="rId20"/>
<sheet name="B-A-QP-11" sheetId="33" r:id="rId21"/>
</sheets>
<definedNames>
<definedName localSheetId="58" name="_xlnm.Print_Titles">ap-T-QP-11!$2:$5</definedName>
<definedName localSheetId="2" name="_xlnm.Print_Titles">R-T-QP-11!$2:$13</definedName>
</definedNames>
```
MS Excel 2010 out
```
<sheets>
<sheet name="Q-P-QP-11" sheetId="55" r:id="rId1"/>
<sheet name="Q-P-QP-12" sheetId="53" r:id="rId2"/>
<sheet name="Q-P-QP-13" sheetId="54" r:id="rId3"/>
<sheet name="Q-P-RN-12" sheetId="56" r:id="rId4"/>
<sheet name="Q-P-RN-13" sheetId="57" r:id="rId5"/>
<sheet name="C-C-QP-11-12-13-RN-12-13" sheetId="50" r:id="rId6"/>
<sheet name="E-T-QP-11-12-13" sheetId="31" r:id="rId7"/>
<sheet name="E-T-BK" sheetId="60" r:id="rId8"/>
<sheet name="E-A-RN-12-13" sheetId="43" r:id="rId9"/>
<sheet name="F1-A-QP-11-12-13" sheetId="1" r:id="rId10"/>
<sheet name="F2-A-QP-11-12-13" sheetId="23" r:id="rId11"/>
<sheet name="C-A-QP-12-13-RN-12-13" sheetId="48" r:id="rId12"/>
<sheet name="C-T-QP-12-13" sheetId="7" r:id="rId13"/>
<sheet name="R-T-QP-12-RN-12-13" sheetId="45" r:id="rId14"/>
<sheet name="C-T-QP-11" sheetId="58" r:id="rId15"/>
<sheet name="R-T-QP-11" sheetId="3" r:id="rId16"/>
<sheet name="A-T-QP-11-12-RN-12" sheetId="13" r:id="rId17"/>
<sheet name="A2-T-RN-13" sheetId="42" r:id="rId18"/>
<sheet name="ap-T-QP-11" sheetId="59" r:id="rId19"/>
<sheet name="B-A-QP-12-13" sheetId="32" r:id="rId20"/>
<sheet name="B-A-QP-11" sheetId="33" r:id="rId21"/>
</sheets>
<definedNames>
<definedName name="_xlnm.Print_Titles" localSheetId="18">'ap-T-QP-11'!$2:$5</definedName>
<definedName name="_xlnm.Print_Titles" localSheetId="15">'R-T-QP-11'!$2:$13</definedName>
</definedNames>
```
Compare localSheetId it uses sheet index instead of sheet's sheetId
2021-03-21 19:39:36 -04:00
xuri
afe2ebc261
This improves compatibility for absolute XML path, Windows-style directory separator and inline namespace;
2021-02-27 08:49:10 +08:00
xuri
d84050921e
check empty rich text run properties; new formula fn: LEFT, LEFTB, RIGHT, RIGHTB
2021-02-23 00:05:19 +08:00
xuri
36b7990d6b
lint issue fixed and new formula function: ATAN, AVERAGE, AVERAGEA, CONCAT, CONCATENATE, COUNT, COUNTBLANK, MAX
2021-02-15 00:09:35 +08:00
xuri
3648335d7f
This improves compatibility for worksheet relative XML path and multi rules auto filter
2021-02-11 10:54:38 +08:00
xuri
30549c5e90
fix custom row height check issue
2021-02-08 18:05:15 +08:00
xuri
1f329e8f96
This closes #774 , closes #775 and closes #776
...
- correct adjust calculation chain in duplicate rows
- correct adjust defined name in the workbook when delete worksheet
- use absolute reference in the auto filters defined name to make it compatible with OpenOffice
- API `CoordinatesToCellName` have a new optional param to specify if using an absolute reference format
- Fix cyclomatic complexity issue of internal function `newFills` and `parseToken`
2021-02-02 22:23:16 +08:00
xuri
1bc5302007
Fixed #764 , add a condition for round precision
2021-01-20 00:14:21 +08:00
xuri
b260485f29
support to set print black and white and specified the first printed page number
2021-01-17 01:06:08 +08:00
xuri
054bb9f061
Support to adjust print scaling of the worksheet
2021-01-16 21:51:23 +08:00
xuri
13e0ed2a69
Fixed #735 , refresh active tab after delete sheet
2020-11-23 00:01:06 +08:00
xuri
2514bb16c6
Fix #724 , standardize variable naming and update unit tests
2020-11-11 01:03:56 +08:00
xuri
5dd0b4aec2
using POSIX directory separator in zip path with Windows
2020-11-06 20:03:13 +08:00
xuri
c82a185af8
Compatibility improvement: parse document core part (workbook) dynamically
2020-11-04 00:28:20 +08:00
Ted
fcca8a3838
optimize memory allocation ( #722 )
...
* optimize marshal
* optimize mem alloc
* add benchmark testing
* add NewSheetWithRowNum testing
* sync struct fields order
* add BenchmarkNewSheetWithStreamWriter
* delete NewSheetWithRowNum and benchmark test
2020-11-03 17:48:37 +08:00
xuri
b812e9a1a8
New formula function AND ( #701 ) and update doc for the NewSheet ( #714 )
2020-10-22 08:29:25 +08:00
xuri
4834a058aa
This closes #714 and closes #715 , fix wrong worksheet index returned by NewSheet in some case, fix panic on formatted value with no built-in number format ID
2020-10-19 23:55:54 +08:00
xuri
520aa679f3
Fix #706 , #713 improve AddPicture performance, fix missing worksheet when rename with same names
2020-10-18 00:01:33 +08:00
xuri
ac3dce0bea
- Resolve #711 , update docs for the GetSheetIndex
...
- Update unit test
2020-10-12 00:05:27 +08:00
xuri
88de2f8d51
Default row height compatibility with Apache OpenOffice and Kingsoft WPS, unit test update and typo fixed
2020-08-22 18:58:43 +08:00
xuri
843bd24e56
This closes #677 and closes #679 , fix panic when enabling compiler inline flags
2020-08-06 05:58:40 +00:00
xuri
c922c32fb7
support parse and generate XML element namespace dynamic, fix #651
2020-07-18 15:15:16 +08:00
jaby
5993a07422
Fix issue 665 ( #666 )
2020-07-14 23:05:43 +08:00
xuri
49257c5918
support case-sensitive doc parts to improve compatibility
2020-07-09 01:24:11 +08:00
xuri
15fd56853f
Update docs and typo fixed
2020-06-22 00:14:56 +08:00
xuri
dfea8f96ed
- New API: SetSheetFormatPr and GetSheetFormatPr
...
- typo fix, resolve #635
2020-05-12 23:26:26 +08:00
xuri
48fc4c08a2
init formula calculation engine, ref #65 and #599
2020-05-03 18:44:43 +08:00
xuri
2285d4dc71
handle the cell without r attribute in a row element
2020-04-24 08:26:16 +08:00
xuri
1fe660df64
- Resolve #485 use sheet index instead of ID
...
- added 3 internal function: getSheetID, getActiveSheetID, getSheetNameByID
2020-04-23 02:01:14 +08:00
xuri
0f2a905324
Performance improvements
2020-04-05 13:51:00 +08:00
xuri
3f89c6e979
remove ineffectual variable assignments and simplify code
2020-03-29 18:44:24 +08:00
xuri
6afc468a02
Resolve #451 , support create chart sheet
2020-03-28 23:47:26 +08:00
xuri
1d87da57ec
Resolve #492 , init support for insert and remove page break
2020-03-01 00:34:41 +08:00
xuri
ad883caa0f
Resolve #580 , revert commit 5ca7231ed4
2020-02-19 00:08:10 +08:00
xuri
e51aff2d95
Resolve #570 , flat columns for the column's operation
2020-02-07 00:53:38 +08:00
xuri
5ca7231ed4
optimize code and comments: use println errors instead of panic
2020-01-03 23:57:25 +08:00
xuri
09485b3f9f
Improve code coverage unit tests
2019-12-29 16:02:31 +08:00
xuri
4e4a5b9b3e
Improve compatibility, fix workbook's rels ID calc error
2019-12-23 00:07:40 +08:00
xuri
ae2865d923
Improve code coverage unit tests
2019-12-22 00:02:09 +08:00
match-meng
7358dca436
Update comments for the xmlNewDecoder ( #542 )
2019-12-20 22:22:56 +08:00
xuri
4249dad8ea
Resolve #539 Merge branch 'v2'
...
# Conflicts:
# rows.go
# sheet.go
2019-12-20 01:00:15 +08:00
Alex Geer
b1b3c0d151
Fix #539 Fixed error opening excel file created in encoding d… ( #540 )
...
* Fixed issue #539 Fixed error opening excel file created in encoding different from UTF-8, added logging of possible errors when decoding XML if the function does not provide exit with an error
* Added test for CharsetReader
* Fixed #discussion_r359397878
Discussion: https://github.com/360EntSecGroup-Skylar/excelize/pull/540#discussion_r359397878
* Fixed go fmt
* go mod tidy and removed unused imports
* The code has been refactored
2019-12-20 00:30:48 +08:00
xuri
a526e90404
Fix #426 , handle empty workbook view
2019-12-16 08:32:04 +08:00
xuri
402ad2f62b
Update XML namespace
2019-11-30 00:06:36 +08:00
xuri
8d6e431dcd
Resolve #521 , fix missing elements when parsing
2019-11-28 21:53:50 +08:00
xuri
7965e1231b
Resolve #146 , make the GetRow function read data as streaming. Ref: #382 , #515
2019-11-23 04:13:59 +08:00
Harris
bf9a835549
Reduce allocations when writing
...
Fix #494
If a row is full, don't bother allocating a new one, just return it.
Use the last populated row as a hint for the size of new rows.
Simplify checkSheet to remove row map
2019-11-05 08:18:11 -06:00
xuri
5e418ebd66
Resolve #507 , add the new function `DeleteDefinedName`
2019-10-26 20:55:24 +08:00
xuri
e7581ebf3e
Fix corrupted Excel file issue #413
2019-10-23 10:08:29 +08:00
xuri
2e791fa433
Optimize code of Getting/Setting Page Margins
2019-10-17 00:02:39 +08:00
streboryaj
2d21b5b50f
Added accessors for Getting/Setting Page Margins ( #497 )
...
* Added accessors for Getting/Setting Page Margins
* Added test cases
2019-10-15 22:26:08 +08:00
xuri
8922f65978
Combine functions:
...
workBookRelsWriter, drawingRelsWriter into relsWriter;
drawingRelsReader, workbookRelsReader, workSheetRelsReader into relsReader;
addDrawingRelationships, addSheetRelationships into addRels
2019-09-16 01:17:35 +08:00
xuri
9c70d0ac86
Documentation updated, Go 1.10+ required
2019-08-11 00:36:14 +08:00
Harris
faaaa52cb8
Get sheet names based on index
...
SheetID only seems to indicate the file name for the sheet.
Check the sheets list based on index instead. Reordering sheets
in Excel changes the order they appear in that list.
Fixes #457
2019-08-08 08:19:18 -05:00
xuri
cbe919fdf6
New feature: sparkline supported
2019-08-04 20:24:59 +08:00
xuri
b5f7d4a78e
Merge pull request #447 from dongkai16z/master
...
Fix #443
2019-07-26 09:21:25 +08:00
Sustainedhhh
0c9e5137e3
Fix #442
2019-07-25 20:31:21 +08:00
董凯
53e653f28e
Fix #443
2019-07-25 20:27:03 +08:00
xuri
e14d2febc8
Resolve #432 , supplement the function of SetPageLayout
...
SetPageLayout support to set fit to width and height
2019-07-06 15:11:51 +08:00