0

既存の Excel セルを更新できません。これらは結合され、縁取りされています。スタイルを設定してテンプレートとして使用する Excel ファイルを作成しました。私のコードで->まずそのExcelファイルを読み取り、必要なセルを更新します。結合セルは問題ありませんでした。ただし、結合されたセルにはデータを挿入できません。

Excel ファイルが破損したり、データ セルが空になったりする可能性があります。既存のセルの結合および境界線を上書きしたくありません。ここで、読み取りと更新のための私のコード..

HashMap<String, ByteArrayOutputStream> streams = new HashMap<String, ByteArrayOutputStream>();
try {
    String appDir = System.getProperty("appDir");
    String resouceDir = appDir + System.getProperty("resourceDir");
    String templateDir = resouceDir + "/template";
    if (streams.keySet().size() <= 0) {
        XSSFSheet sheet = null;
        FileInputStream file = new FileInputStream(new File(templateDir +"/shipping_template.xlsx")); 
        XSSFWorkbook workbook = new XSSFWorkbook(file);
        ByteArrayOutputStream baos = null;
        sheet = workbook.getSheetAt(0);
        XSSFRow shippingRow = sheet.getRow(4);
        Cell cell = shippingRow.createCell((short) 36);
        cell.setCellValue("DOOM Bringer");
        baos = new ByteArrayOutputStream();
        workbook.write(baos);
        streams.put(param, baos);
        baos.close();
        file.close();
    }
}
4

2 に答える 2

1

残念ながら、Apache POI はサポートされなくなりました。彼らは、Office 2007 の変更の 1 つのバージョンを Office ドキュメントの処理方法に加えましたが、これはサポートされなくなりました。私はまったく同じことをしましたが、docx4j の使用を検討することをお勧めします。しかし、実際に何をする必要があるかに関係なく、ファイル ストリームで新しいドキュメントを開き、それを一時的な場所に保存して、新しいドキュメントに変更を加える必要があります。

于 2013-05-13T17:26:54.213 に答える