1

Apache poi で Excel ワークブックをコピーしたい。コピーは保護する必要がありますが、ユーザーは列のサイズを変更できる必要があります。テンプレートを用意し、テンプレートの最初のシートで「列形式」を選択しました。次のスニペットを使用すると

      InputStream is = new FileInputStream(
                new File(DIR, "template.xlsx"));
            XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(is);
            XSSFSheet s = wb.getSheetAt(0);
            s.protectSheet("");
            FileOutputStream os = new FileOutputStream(new File(DIR, "test.xlsx"));
            wb.write(os);
            os.close();

破損した Excel シートが表示されます。Apache poi 3.8 と Excel 2007 を使用しています。

シートを保護しながら列のサイズを変更できる回避策はありますか?

どんな助けでも大歓迎です

ステファン

4

1 に答える 1

2

これは古い投稿であることは知っていますが、この問題を解決しました。次のコードを使用できます。

//just initialize these XSSFWorkbook xwb; XSSFSheet xsheet;

xsheet.protectSheet("1234"); xsheet.getCTWorksheet().getSheetProtection().setFormatColumns(false); xsheet.enableLocking(); xwb.lockStructure();

これが将来誰かに役立つことを願っています!:D

于 2013-02-11T19:04:28.463 に答える