Sean Liang
32548a6cac
return immediately when matched for efficiency ( #1049 )
3 years ago
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%
3 years ago
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`
3 years ago
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
3 years ago
three
f6f14f507e
Speed up merge cells
3 years ago
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
4 years ago
xuri
5ce3fe8cb8
Improvement compatibility with invalid first-page number attribute in the page layout
4 years ago
xuri
fbcfdeae90
This closes #879 , fix delete defined name failed in some case
4 years ago
xuri
b14b74bf56
This closes #873 , make the sheet names are not case sensitive for `NewSheet`, `GetSheetIndex`, `DeleteSheet`
4 years ago
xuri
90d200a10b
Make the functions `SetSheetRow`, `New Style` and `SetCellStyle` concurrency safety
4 years ago
xuri
b7fece5173
Support concurrency add picture
4 years ago
xuri
544ef18a8c
- Support concurrency iterate rows and columns
...
- Rename exported field `File.XLSX` to `File.Pkg`
- Exported error message
4 years ago
xuri
0e02329bed
This closes #861 , support concurrency get cell picture and remove unused internal function `getSheetNameByID`
4 years ago
vettich
5ec61310dc
fix: LocalSheetID in DefinedName should be equal to SheetIndex instead of SheetID ( #868 )
4 years ago
xuri
be12cc27f1
This closes #652 , new SetColWidth API, support set column width in stream writing mode, and export error message
4 years ago
xuri
0e0237e62d
compatibility with non-standard page setup attributes
4 years ago
xuri
438fd4b3f9
This closes #834 , fix invalid file path and duplicate namespace when re-creating worksheet
4 years ago
xuri
f8f699a172
Go 1.15 and later required, #65 fn: IMABS, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMEXP, IMLN and IMLOG10
4 years ago
xuri
2af96c0714
#65 fn: N, PERCENTILE.INC and T
...
typo fixed
4 years ago
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
4 years ago
xuri
afe2ebc261
This improves compatibility for absolute XML path, Windows-style directory separator and inline namespace;
4 years ago
xuri
d84050921e
check empty rich text run properties; new formula fn: LEFT, LEFTB, RIGHT, RIGHTB
4 years ago
xuri
36b7990d6b
lint issue fixed and new formula function: ATAN, AVERAGE, AVERAGEA, CONCAT, CONCATENATE, COUNT, COUNTBLANK, MAX
4 years ago
xuri
3648335d7f
This improves compatibility for worksheet relative XML path and multi rules auto filter
4 years ago
xuri
30549c5e90
fix custom row height check issue
4 years ago
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`
4 years ago
xuri
1bc5302007
Fixed #764 , add a condition for round precision
4 years ago
xuri
b260485f29
support to set print black and white and specified the first printed page number
4 years ago
xuri
054bb9f061
Support to adjust print scaling of the worksheet
4 years ago
xuri
13e0ed2a69
Fixed #735 , refresh active tab after delete sheet
4 years ago
xuri
2514bb16c6
Fix #724 , standardize variable naming and update unit tests
4 years ago
xuri
5dd0b4aec2
using POSIX directory separator in zip path with Windows
4 years ago
xuri
c82a185af8
Compatibility improvement: parse document core part (workbook) dynamically
4 years ago
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
4 years ago
xuri
b812e9a1a8
New formula function AND ( #701 ) and update doc for the NewSheet ( #714 )
4 years ago
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
4 years ago
xuri
520aa679f3
Fix #706 , #713 improve AddPicture performance, fix missing worksheet when rename with same names
4 years ago
xuri
ac3dce0bea
- Resolve #711 , update docs for the GetSheetIndex
...
- Update unit test
4 years ago
xuri
88de2f8d51
Default row height compatibility with Apache OpenOffice and Kingsoft WPS, unit test update and typo fixed
4 years ago
xuri
843bd24e56
This closes #677 and closes #679 , fix panic when enabling compiler inline flags
5 years ago
xuri
c922c32fb7
support parse and generate XML element namespace dynamic, fix #651
5 years ago
jaby
5993a07422
Fix issue 665 ( #666 )
5 years ago
xuri
49257c5918
support case-sensitive doc parts to improve compatibility
5 years ago
xuri
15fd56853f
Update docs and typo fixed
5 years ago
xuri
dfea8f96ed
- New API: SetSheetFormatPr and GetSheetFormatPr
...
- typo fix, resolve #635
5 years ago
xuri
48fc4c08a2
init formula calculation engine, ref #65 and #599
5 years ago
xuri
2285d4dc71
handle the cell without r attribute in a row element
5 years ago
xuri
1fe660df64
- Resolve #485 use sheet index instead of ID
...
- added 3 internal function: getSheetID, getActiveSheetID, getSheetNameByID
5 years ago
xuri
0f2a905324
Performance improvements
5 years ago
xuri
3f89c6e979
remove ineffectual variable assignments and simplify code
5 years ago
xuri
6afc468a02
Resolve #451 , support create chart sheet
5 years ago
xuri
1d87da57ec
Resolve #492 , init support for insert and remove page break
5 years ago
xuri
ad883caa0f
Resolve #580 , revert commit 5ca7231ed4
5 years ago
xuri
e51aff2d95
Resolve #570 , flat columns for the column's operation
5 years ago
xuri
5ca7231ed4
optimize code and comments: use println errors instead of panic
5 years ago
xuri
09485b3f9f
Improve code coverage unit tests
5 years ago
xuri
4e4a5b9b3e
Improve compatibility, fix workbook's rels ID calc error
5 years ago
xuri
ae2865d923
Improve code coverage unit tests
5 years ago
match-meng
7358dca436
Update comments for the xmlNewDecoder ( #542 )
5 years ago
xuri
4249dad8ea
Resolve #539 Merge branch 'v2'
...
# Conflicts:
# rows.go
# sheet.go
5 years ago
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
5 years ago
xuri
a526e90404
Fix #426 , handle empty workbook view
5 years ago
xuri
402ad2f62b
Update XML namespace
5 years ago
xuri
8d6e431dcd
Resolve #521 , fix missing elements when parsing
5 years ago
xuri
7965e1231b
Resolve #146 , make the GetRow function read data as streaming. Ref: #382 , #515
5 years ago
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
5 years ago
xuri
5e418ebd66
Resolve #507 , add the new function `DeleteDefinedName`
5 years ago
xuri
e7581ebf3e
Fix corrupted Excel file issue #413
5 years ago
xuri
2e791fa433
Optimize code of Getting/Setting Page Margins
5 years ago
streboryaj
2d21b5b50f
Added accessors for Getting/Setting Page Margins ( #497 )
...
* Added accessors for Getting/Setting Page Margins
* Added test cases
5 years ago
xuri
8922f65978
Combine functions:
...
workBookRelsWriter, drawingRelsWriter into relsWriter;
drawingRelsReader, workbookRelsReader, workSheetRelsReader into relsReader;
addDrawingRelationships, addSheetRelationships into addRels
5 years ago
xuri
9c70d0ac86
Documentation updated, Go 1.10+ required
6 years ago
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
6 years ago
xuri
cbe919fdf6
New feature: sparkline supported
6 years ago
xuri
b5f7d4a78e
Merge pull request #447 from dongkai16z/master
...
Fix #443
6 years ago
Sustainedhhh
0c9e5137e3
Fix #442
6 years ago
董凯
53e653f28e
Fix #443
6 years ago
xuri
e14d2febc8
Resolve #432 , supplement the function of SetPageLayout
...
SetPageLayout support to set fit to width and height
6 years ago
xuri
8b2d4cb697
New feature: group and ungroup sheets support
...
New functions `GroupSheets` and `UngroupSheets` added
Refactor sheet index calculation
6 years ago
xuri
dc8210d4a7
Update GoDoc and typo fixed
6 years ago
xuri
a335be7e4e
New functions: SetDefinedName and GetDefinedName added
6 years ago
xuri
421f945f51
Fixed #418 , #420 , #421 , init adjust calculation chain support
...
Update testing case
6 years ago
xuri
f91f548614
Resolve #404 , get sheet map by target rels.
6 years ago
xuri
69b38ddcd6
Resolve #394 , init set header and footer support
6 years ago
xuri
01a418bda8
Resolve #392 , compatible with strict relations name space inspection
6 years ago
xuri
0660f30cdd
godoc update and typo fixed
6 years ago
Michael
0f9170a03b
Resolve #382 , rewrite prepareSheetXML to scale linearly ( #383 )
...
* Rewrite prepareSheetXML to scale linearly
We don't need to backfill columns into every row for most purposes
Provided makeContiguousColumns for setting styles where we do
need it for a specific region.
Added a benchmark to monitor progress. For 50,000 rows this went
from about 11 seconds to 1 second. The improvements are more
dramatic as the row/column count increases.
* Assigning that row value was redundant
6 years ago
xuri
a88459d5f1
add unit tests to functions
6 years ago
xuri
f2df344739
Resolve #369,#370
...
add error return value
exported functions:
GetMergeCells
ProtectSheet
UnprotectSheet
UpdateLinkedValue
GetMergeCells
SetSheetVisible
inner functions:
workSheetReader
copySheet
6 years ago
Aplulu
841ff4a03e
Fix out of range panic when removing formula.
...
Fix file corruption issue when deleting a sheet containing a formula.
6 years ago
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
6 years ago
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
6 years ago
xuri
40ea8eb014
resolve #360 , fix axis parse issue when add / get pictures;
...
typo fixed and go test updated
6 years ago
Veniamin Albaev
dc01264562
Huge refactorig for consistent col/row numbering ( #356 )
...
* Huge refactorig for consistent col/row numbering
Started from simply changing ToALphaString()/TitleToNumber() logic and related fixes.
But have to go deeper, do fixes, after do related fixes and again and again.
Major improvements:
1. Tests made stronger again (But still be weak).
2. "Empty" returns for incorrect input replaces with panic.
3. Check for correct col/row/cell naming & addressing by default.
4. Removed huge amount of duplicated code.
5. Removed ToALphaString(), TitleToNumber() and it helpers functions at all,
and replaced with SplitCellName(), JoinCellName(), ColumnNameToNumber(), ColumnNumberToName(), CellNameToCoordinates(), CoordinatesToCellName().
6. Minor fixes for internal variable naming for code readability (ex. col, row for input params, colIdx, rowIdx for slice indexes etc).
* Formatting fixes
6 years ago
xuri
f66212da9b
Resolve #106 , #294 performance optimization for add hyperlink
6 years ago
xuri
0072bb7310
resolve the issue corrupted xlsx after deleting formula of cell, reference #346
6 years ago
kkxkkxkkgh
81948d9e1e
The function SetPageLayout support set paper size
6 years ago
zhangleijlu
034de7acd8
Resolve #318 , add new functions and
6 years ago
xuri
fabd9d013f
README updated
6 years ago
xuri
9a6f66a996
New feature: the function `SearchSheet` now support regular expression, relate pull request #316
6 years ago