簡體   English   中英

POI-以HH:MM:SS.sss格式處理數據

[英]POI - Handling data in HH:MM:SS.sss Format

我正在一個項目中,我有HH:MM:SS.sss格式的數據,我必須以Excel /電子表格生成報告。 我正在使用POI生成excel文件,但是我面臨以下問題:

  1. 如果我將數據設置為字符串格式,即cell.setCellValue("02:45:6.7"); 即使我使用[h]:mm:ss.000;@cs.setDataFormat(df.getFormat("[h]:mm:ss.000;@"))格式化單元格,也無法使用averagesum等Excel公式。 cs.setDataFormat(df.getFormat("[h]:mm:ss.000;@"))是無效的,因為它是字符串。

    HSSFCellStyle cs = hssfworkbook.createCellStyle(); HSSFDataFormat df = hssfworkbook.createDataFormat(); cs.setDataFormat(df.getFormat("[h]:mm:ss.000;@"));

  2. Excel沒有任何功能(據我所知)以hh:mm:ss.sss格式接收數據,我嘗試使用“ TIME(HH,MM,SS)”並將單元格格式化為[h]:mm:ss.000;@在將小數點替換為000后不顯示值,即TIME(02,45,6.7) is displayed as 02:45:6.000

  3. 我嘗試在POI源代碼中進行更改,我嘗試按照此問題中的步驟進行操作https://stackoverflow.com/a/10306350/2513084仍然無法正常工作。 生成的文件顯示-該文件的某些公式或名稱包含Kingsoft Spreadsheet不支持的內置函數,並且重新計算這些公式或名稱可能會導致錯誤的結果。 Microsoft Office無法打開該文件,並顯示錯誤文件錯誤:數據可能已丟失。

我已經很長時間沒有使用POI了,但是據我所知……日期只不過是數字(毫秒)而已。 只有單元格類型定義為日期/數字單元格。

然后,在其他位置定義單元的實際視覺表示。

我的一些舊代碼(可能不是最新的POI版本具有以下語句):

HSSFCell cell = newRow.createCell(column);

Date date = new Date(some_date_value); 
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(date);

您可以將單元格樣式(顯示格式)設置為:

cell.setCellStyle(style);

因此,我將深入探討style部分...以及如何進行設置(對不起,該部分沒有有效的示例)。 也許它將與您的代碼一起使用...因為您沒有將值設置為數字,而是設置為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM