I have some tests that appear to show that that test class I
referenced earlier does handle formatted dates. I added an extra one
today.

https://github.com/pjfanning/excel-streaming-reader/commit/d26bdb3be3aac829a77ec6912bb63811c4812e06

On Wed, 12 Feb 2025 at 05:27, Dan S <dsti...@gmail.com> wrote:
>
> Thank you very much for that example. It was very helpful.  Based on the 
> example,  I changed my code, changing back the cellStyle to true in the 
> CellCopyPolicy and I refactored the method copyRows from 
> org.apache.poi.xssf.usermodel.XSSFSheet and method copyRowFrom from 
> org.apache.poi.xssf.usermodel.XSSFRow instantiating a CellCopyContext in 
> copyRows. The problem though is when I ran the following worksheet through, 
> the resulting workbook with a single sheet has date formatted columns (as 
> expected) in the column with header transaction_date is but the values in the 
> column header transaction time is not date formatted where it should be (as 
> it is in the original file). Attached is my new code and the sample file. 
> Please advise. Thank you so much!
>
> On Tue, Feb 11, 2025 at 4:18 PM PJ Fanning <fannin...@apache.org> wrote:
>>
>> That copyRows method doesn't allow you to specify the CellCopyContext.
>> We probably should add a variant of copyRows that supports this extra
>> param. The context keeps track of styles so that it avoids adding the
>> same style over and over - i.e. it spots the duplicate styles.
>>
>> This example might be useful
>> https://github.com/pjfanning/excel-streaming-reader/blob/main/src/test/java/com/github/pjfanning/xlsx/CopyToSXSSFUtil.java
>>
>> CellUtil.copyCell - this method can take a CellCopyContext instance.
>>
>> On Tue, 11 Feb 2025 at 17:48, Dan S <dsti...@gmail.com> wrote:
>> >
>> > I hope I am addressing the right list. I am an Apache NIFI developer and I
>> > have developed an Apache NIFI processor named SplitExcel which splits a
>> > multi sheet Microsoft Excel spreadsheet into multiple Microsoft Excel
>> > spreadsheets where each sheet from the original file is converted to an
>> > individual spreadsheet. Source code for this can be found here
>> > <https://github.com/apache/nifi/blob/main/nifi-extension-bundles/nifi-poi-bundle/nifi-poi-services/src/main/java/org/apache/nifi/processors/excel/SplitExcel.java>
>> > (lines
>> > 165-188).
>> > In order to accomplish this, I use the
>> > com.github.pjfanning.xlsx.StreamingReader to stream the Excel workbook
>> > which allows for easy looping over each sheet. I create a new XSSFWorkbook
>> > for each sheet there is in the existing workbook and I use XSSFSheet
>> > copyRows method to copy the rows from the existing sheet to a new sheet to
>> > place in the new XSSFWorkbook. The CellCopyPolicy used has cellStyle set to
>> > false in order to avoid exceeding the maximum number of cell styles (fixed
>> > in NIFI-13726 <https://issues.apache.org/jira/browse/NIFI-13726>). The
>> > drawback though of using cellStyle set to false is that any columns which
>> > have dates, its date formatting is lost and what is left is a meaningless
>> > number (reported in NIFI-14106
>> > <https://issues.apache.org/jira/browse/NIFI-14106>). Is there a way I can
>> > use copyRows not to exceed the maximum number of cell styles and yet have
>> > the formatting needed for dates?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
> For additional commands, e-mail: user-h...@poi.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
For additional commands, e-mail: user-h...@poi.apache.org

Reply via email to