フォーマットを含む既存のテンプレートから Excel シートを作成し、それにデータを追加して新しいファイルに保存する次のコードを見つけました
POIFSFileSystem fs = new POIFSFileSystem(
new FileInputStream("template.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs, true);
Will load an xls, preserving its structure (macros included). You can then modify it,
HSSFSheet sheet1 = wb.getSheet("Data"); ...
保存します。
FileOutputStream fileOut = new FileOutputStream("new.xls");
wb.write(fileOut);
fileOut.close();
これは絶対にうまくいきます。しかし、私の問題は、現在新しいバージョンの Excel を扱っていることです。そのため、新しいバージョンのテンプレートを処理するために同様のコードを開発する必要があります。誰かがこれを行う方法を提案できますか? HSSWorkbook を XSSFWorkbook に変更してみました。ただし、XSSFWorkbook には、ブール値を渡すことができるコンストラクターがありません。また。試してみると、データはコピーされますが、データを含む行は、テンプレートにある列の書式設定を保持しません。