我想创建一个包含多列的XWPFTable。我将值插入从0开始的行号。但问题是,第1行的内容将附加到第0行。另一件事是,当我写到第一行时,它在顶行。 那么我需要假设getRow(0)和getRow(1)指向最顶行吗?提前谢谢。
XWPFDocument doc = new XWPFDocument();
XWPFTable table=doc.createTable(3,3);
table.getRow(0).getCell(0).setText("A");
table.getRow(0).getCell(1).setText("B");
table.getRow(0).getCell(2).setText("C");
table.getRow(1).getCell(0).setText("one");
table.getRow(1).getCell(1).setText("two");
table.getRow(1).getCell(2).setText("three");
table.getRow(2).getCell(0).setText("XXX");
table.getRow(2).getCell(1).setText("YYYYY");
table.getRow(2).getCell(2).setText("ZZZZZZ");
生成的表格是:
Aone Btwo Cthree
XXX YYYYY ZZZZZZ
答案 0 :(得分:0)
我尝试了你的代码,我看到了应该在MS Office(2010)中的表格。 OpenOffice渲染中存在一些布局差异,但仍然是正确的。那是你试过的代码吗?您使用的是什么版本的POI?你使用什么样的Office套件?
这是我测试过的。
package com.ecinev.poitest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
public class TestPoi2 {
public static void main(String[] args) throws IOException {
XWPFDocument doc = new XWPFDocument();
XWPFTable table = doc.createTable(3, 3);
table.getRow(0).getCell(0).setText("A");
table.getRow(0).getCell(1).setText("B");
table.getRow(0).getCell(2).setText("C");
table.getRow(1).getCell(0).setText("one");
table.getRow(1).getCell(1).setText("two");
table.getRow(1).getCell(2).setText("three");
table.getRow(2).getCell(0).setText("XXX");
table.getRow(2).getCell(1).setText("YYYYY");
table.getRow(2).getCell(2).setText("ZZZZZZ");
doc.write(new FileOutputStream(new File(
"/Users/myfolder/Documents/empty.docx")));
}
}