XWPFTable生成

时间:2015-02-05 06:30:59

标签: java apache-poi xwpf

我想创建一个包含多列的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

1 个答案:

答案 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")));
    }
}