45 Home
xuri edited this page 2 months ago

Roadmap

Feature Todo

  • Formula calculation engine (issue #65)
  • Remove rows and columns (just initialized issue #77)
  • Conditional formatting support (just initialized issue #75)
  • Encryption support (issue #199)
  • Pivot Chart support
  • Set multiline texts to cells support (issue #69)
  • VBA Script support
  • Complex chart style support
  • Unit test assert equal with the result
  • Object Linking and Embedding (OLE) format support (#44)
  • Set Accounting number format currently (#189)
  • Remove Data Validation support (#348)
  • Diagrams (SmartArts Graphic)

Optimization

Improve performance, in order to ensure the compatibility of some complex patterns currently(charts, table, formula, pivot and etc.), Excelize does a lot of checks, that will be impacted on performance, generates large files will be very slow. To resolve this problem, I think can be added a fast mode, in fast mode will skip some compatibility check step, and the user should be known just operate on simple XLSX when using Excelize in this mode. If you have some suggestions and questions, welcome to talk to me.

Working with Memory and Performance

Performance Figures

The performance figures below show execution time and memory usage for worksheets of size N rows x 50 columns with a 50/50 mixture of strings and numbers. The figures are taken from an arbitrary, mid-range, machine (OS: macOS Mojave version 10.14.4, CPU: 3.4 GHz Intel Core i5, RAM: 16 GB 2400 MHz DDR4, HDD: 1 TB, Go Version: go1.12.4 darwin/amd64, Commit: 0660f30). Specific figures will vary from machine to machine but the trends should be the same.

Type Rows Columns Time (s) Memory (MB)
Set Cell Value 200 50 0.03 4
400 50 0.07 5
800 50 0.12 9
1600 50 0.25 15
3200 50 0.49 53
6400 50 1.01 101
12800 50 2.06 137
25600 50 4.10 237
52100 50 8.44 437
102400 50 16.78 1643
Add Chart 200 50 10.6 171
Set HyperLink 200 50 0.08 9
400 50 0.15 16
800 50 0.31 41
1600 50 0.59 63
3200 50 1.16 132
6400 50 2.40 253
12800 50 4.94 748
Insert Picture 200 50 0.86 40
400 50 1.83 79
800 50 4.11 158
1600 50 10.07 316
3200 50 28.17 632
6400 50 87.90 1263
12800 50 299.32 2535