diff options
author | Cameron Howey <cameronh@emailline.net> | 2019-12-28 20:45:10 -0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2019-12-29 12:45:10 +0800 |
commit | 5c87effc7e6c97fff36a56dea1afac8a2f06fb37 (patch) | |
tree | 35153a2d36aed19c142bc54c6e8d632eff270109 /shape.go | |
parent | 8b960ee1e624bd2776a351a4a3b2ad04c29bae9a (diff) |
Stream to Excel table (#530)
* Support all datatypes for StreamWriter
* Support setting styles with StreamWriter
**NOTE:** This is a breaking change. Values are now explicitly
passed as a []interface{} for simplicity. We also let styles to be
set at the same time.
* Create function to write stream into a table
* Write rows directly to buffer
Avoiding the xml.Encoder makes the streamer faster and use less
memory.
Using the included benchmark, the results went from:
> BenchmarkStreamWriter-4 514 2576155 ns/op 454918 B/op 6592 allocs/op
down to:
> BenchmarkStreamWriter-4 1614 777480 ns/op 147608 B/op 5570 allocs/op
* Use AddTable instead of SetTable
This requires reading the cells after they have been written,
which requires additional structure for the temp file.
As a bonus, we now efficiently allocate only one buffer when
reading the file back into memory, using the same approach
as ioutil.ReadFile.
* Use an exported Cell type to handle inline styles for StreamWriter
Diffstat (limited to 'shape.go')
0 files changed, 0 insertions, 0 deletions