With some System.out statements this is what the resulting sheet in the
workbook looks like. I would have thought all cell 2 columns except for row
1
should have had a value which is a date. Instead I see a negative -1 value.

row 0 cell 0 cell type STRING value transaction_id
row 0 cell 1 cell type STRING value transaction_date
row 0 cell 2 cell type STRING value transaction_time
row 1 cell 0 cell type NUMERIC value 75.0
row 1 cell 1 cell type NUMERIC value Sun Jan 01 00:00:00 UTC 2023
row 1 cell 2 cell type NUMERIC value -1.0
row 2 cell 0 cell type NUMERIC value 78.0
row 2 cell 1 cell type NUMERIC value Sun Jan 01 00:00:00 UTC 2023
row 2 cell 2 cell type NUMERIC value -1.0
row 3 cell 0 cell type NUMERIC value 80.0
row 3 cell 1 cell type NUMERIC value Sun Jan 01 00:00:00 UTC 2023
row 3 cell 2 cell type NUMERIC value -1.0
row 4 cell 0 cell type NUMERIC value 81.0
row 4 cell 1 cell type NUMERIC value Sun Jan 01 00:00:00 UTC 2023
row 4 cell 2 cell type NUMERIC value -1.0
row 5 cell 0 cell type NUMERIC value 82.0
row 5 cell 1 cell type NUMERIC value Sun Jan 01 00:00:00 UTC 2023
row 5 cell 2 cell type NUMERIC value -1.0

On Wed, Feb 12, 2025 at 10:08 AM Dan S <dsti...@gmail.com> wrote:

> Oops sorry for the typo it should read
> In other words the third column has time values and when read without my
> code are numeric cell types AND ARE date formatted but after running
> through my code they seem to only be numeric cell types and NOT date
> formatted.
>
> On Wed, Feb 12, 2025 at 10:06 AM Dan S <dsti...@gmail.com> wrote:
>
>> In other words the third column has time values and when read without my
>> code are numeric cell types are not date formatted but after running
>> through my code they seem to only be numeric cell types and not date
>> formatted.
>>
>> On Wed, Feb 12, 2025 at 9:24 AM Dan S <dsti...@gmail.com> wrote:
>>
>>> PJ,
>>>  I realize  it handles formatted dates. My question is that it appears
>>> my changes only handle one of the columns with dates but not the other. I
>>> understood from you the changes I made should have handled both. Please
>>> advise.
>>>
>>> On Wed, Feb 12, 2025 at 6:36 AM PJ Fanning <fannin...@apache.org> wrote:
>>>
>>>> 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