1
私はテーブルを持つ単語の文書を持っています。 Javaを使ってこれらのセルにテキストを挿入したいのですが、Apache POIをプロジェクトに追加しました。Java、Apache POIを使用してワードテーブルセルに書き込みますか?
しかし、私はドキュメントからの読み取りに成功しました。私のアプリケーションは、テーブル内のすべてのセルを取得します。しかし、私はどのように各セルに新しいテキストを挿入するのか分からない?何か案は?
String SOURCE_FILE = "template.doc";
DocumentProcessor instance = new DocumentProcessor();
HWPFDocument doc = null;
try {
doc = instance.openDocument(SOURCE_FILE);
Range range = doc.getRange();
TableIterator itr = new TableIterator(range);
while(itr.hasNext()) {
Table table = itr.next();
for (int rowIndex = 0; rowIndex < table.numRows(); rowIndex++) {
TableRow row = table.getRow(rowIndex);
for (int colIndex = 0; colIndex < row.numCells(); colIndex++) {
TableCell cell = row.getCell(colIndex);
cell.getParagraph(0).text().replace("", "Hello");
System.out.println(cell.getParagraph(0).text());
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
saveDocument(doc, SOURCE_FILE);
}
}
private HWPFDocument openDocument(String file) throws Exception {
URL res = getClass().getClassLoader().getResource(file);
HWPFDocument document = null;
if (res != null) {
document = new HWPFDocument(new POIFSFileSystem(
new File(res.getPath())));
}
return document;
}
private static void saveDocument(HWPFDocument doc, String file) {
try (FileOutputStream out = new FileOutputStream(file)) {
doc.write(out);
doc.close();
System.out.println("File saved");
} catch (IOException e) {
e.printStackTrace();
}
}