Apache POI で Excel 2007 以降の新色が使われている xls ファイルを扱う
Excel 2007 以降の新色が使われている xls ファイルを HSSFWorkbook として読み込むと、互換性の問題のため、Excel 2003 以前のパレットの近似の色に自動的に変換されてしまうようだ。
元の色を維持したまま保存するには Excel 2003 パレットの色を変更して、変換後の色を元の色に置き換える必要がある。
HSSFPalatte palette = workbook.getCustomPalette(); palette.setColorAtIndex(IndexedColors.GOLD.index, (byte) 252, (yte) 213, (byte) 180); palette.setColorAtIndex(IndexedColors.PALE_BLUE.index, (byte) 182, (yte) 221, (byte) 232); palette.setColorAtIndex(IndexedColors.LAVENDER.index, (byte) 204, (yte) 192, (byte) 218);
はやく xlsx 形式に移行したほうがよさそうだ。