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