Does sheetjs support streaming write large xlsx file in browser #3120
Labels
No Label
DBF
Dates
Defined Names
Features
Formula
HTML
Images
Infrastructure
Integration
International
ODS
Operations
Performance
PivotTables
Pro
Protection
Read Bug
SSF
SYLK
Style
Write Bug
good first issue
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: sheetjs/sheetjs#3120
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I have tested with csv:
for xlsx, is it possible ? I tried exceljs, seems it's streaming support is only for nodejs environment, while that's confusing me, because web streams is already supported by major browsers, I asked help at exceljs's repo but no response.
what about sheetjs ? do you suport web streams ?
We looked into CSV streaming in the browser and found that it was much slower than writing at once.
https://docs.sheetjs.com/docs/demos/bigdata/worker#streaming-write expand the "Live Demo" section at the end.
The live demo will process data in a web worker and use the browser streaming APIs to write to file.
If you do not check "Commit each row", the data is collected and saved to file at the end.
If you check "Commit each row", each row is written in order.
The write is significantly slower even at 10K rows. This is due to the forced
await
. The current implementation of Web Streams API in Chomium does not guarantee write order, so "just don't await" is not viable.If there is some serious improvement in the web APIs, we will revisit the issue.