Coreoz / Windmill

A library to parse or write Excel and CSV files through a fluent API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support streaming Excel files using SXSSFWorkbook

petromir opened this issue · comments

Hi,

Thanks for the great library!

Are there any plans to open it for contributions? I have some ideas in the following areas:

  1. Streaming write of data out to any OutputStream, by supporting SXSSFWorkbook
  2. Out of the box support for annotation mapping, using https://github.com/classgraph/classgraph

I'm also interested in becoming main maintainer of the library, if you don't have time to invest in it.

Hi Petromir,

Thank you for your interest in Windmill!
Yes, we are surely open for contributions.
I wasn't aware of SXSSFWorkbook, I thought POI always needed to load in memory the whole document. This would be a great addition. To advance on this, there are 3 possibilities:

  1. You can explain how you want to implement this in the library. We discuss it. And when it looks ok for both parties, you can start to implement it and do the pull request. I will then review the code before merging it.
  2. This process it too complicated for you, so you prefer to fork the library.
  3. Actually you do not want to spend time on this, and you wait that we implement it (it may take some months, but we will surely implement it someday, there is a real need for this).

About the support for annotations, I am strongly against it in the core library. What I like with this library is actually the absence of reflection code: it makes the code so much readable and easily debuggable.
However, I propose you to do a third party library/module that implement the annotation system you need. If an API is missing from the core library to implement this third party library, we can discuss it.

On Coreoz side, you may think we are not maintaining the library. But actually we will:

  • Apply any security fix as soon as possible,
  • Implement any new missing features that we need for a project: that means that we implement only new features we need. We will not develop new features just for the sake of it.

However, if someone from outside Coreoz wants to contribute, we gladly accept it (after a reviewing process).

Hi,

Let's try with option 1 or 3. It would be nice if you can build CONTRIBUTING.md file, so it's easier for outside contributors to follow your requirements like build steps, changes management, code style, quality check etc. I will contact you when I start working on something.

I guess extending ExportMapping would be enough for having annotation support.