4

Apache POIを使用して既存のテンプレートExcelファイルを読み取り、いくつかのヘッダー行の既存のスタイルをコピーして新しいセルに適用したいと思います。

既存のフォーマット(IE、日付、通貨、パーセンテージなど)が適用されていないようです。

コードはかなり基本的です:

//read existing style
Row existingRow = sheet.getRow(headerRowIndex);
Cell existingCell = existingRow.getCell(0);
CellStyle currentStyle = existingCell.getCellStyle();


//apply date style here
Date date = StringUtil.toDate(map.get(column.getHeaderName()));
cell.setCellValue(date);
//apply previous style      
cell.setCellStyle(currentStyle);

フォントや背景色などはコピーされますが、フォーマットが失われているようです(すべてのセルに「一般的な」フォーマットが適用されています)。

また、私がこれを行うとき:

currentStyle.getDataFormat(); // always 0

そのため、フォーマットを正しく読んでいないように思われます。これを達成する方法について何かアイデアはありますか?

4

1 に答える 1

2

OK私はそれを理解しました、それは私の間違いでした。各セルから読み取るのではなく、行の最初のセルからスタイルを読み取り、それをすべてに適用していました。

これはそれを修正します

Cell existingCell = existingRow.getCell(i);
于 2012-09-11T16:11:39.317 に答える