Comments (4)
This and #63 are going to be significantly more time-consuming to implement than all of the the other issues. I'm focused on implementing core functionality at the moment before thinking about performance. I do understand however that performance is a major reason for using C++ for handling XLSX files in the first place. I will create a demo branch using a SAX parser in the near future. Maybe another contributor will be willing to flesh it out otherwise this may take a few months.
from xlnt.
IMHO, SAX is shit, it’s better to use something StAX-like.
from xlnt.
Hmm, I had never heard of StAX. Researching that led me to libstudxml which looks really nice and implements pull parsing like StAX. I'll just have to figure out if I can avoid loading the full XML from the XLSX during parsing to save memory.
from xlnt.
I was able to automate much of the necessary refactoring for this issue and #63 so I decided to go ahead and do it. With commit dadf852, parsing and serialization using libstudxml (a non-DOM XML library) is effectively at feature parity with the old DOM-based XML library so I've merged it into master.
I will note that the XML is held in several places while reading and writing an XLSX file: compressed in the ZIP archive on disk, compressed in the ZIP archive in memory, uncompressed as a string, and another copy in the std::(i/o)stringstream used by the parser/serializer. There is thus still room for improving memory usage by writing a custom stream that reads/writes compressed data directly to/from the ZIP archive. That will be a separate issue.
from xlnt.
Related Issues (20)
- Loading file fails with error: attribute 'localSheetId' expected HOT 4
- Parse error!(xlnt::exception : bad cell coordinates: (#REF!))
- This is really a good library for xlsx, but the document may need improved?
- number_serialiser::deserialise returns wrong result due to buffer not being null terminated
- Unexpected attribute 'ca' when working with formular in xlsx file.
- Is it possible to write a whole record i.e std::vector<std::string> into the xlnt::worksheet instead of writing cell by cell?
- Throw "counts don`t match" exception
- How do I insert a picture as embedded in a cell ? HOT 1
- When string tables entries exceed 1000, a ',' is being inserted in the string table number, resulting in errors opening file HOT 1
- C++23 aligned storage deprecation warning
- Reference counting issues with xlnt::format_impl
- Do Excel files not support Chinese path? HOT 1
- Fresh release HOT 2
- Errors when try to use in Windows
- Crash on Release HOT 1
- Cloning project failed HOT 1
- Read xls file?
- password
- error in Add Password: wb.save("lots_of_properties.xlsx","password");
- throws exception when I use load function to load an xlsx file containing functions HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xlnt.