0

複数の列を持つ XWPFTable を作成したいと考えています。そして、0から始まる行番号に値を挿入しています。しかし、問題は、1行目のコンテンツが0行目に追加されていることです。もう1つのことは、1行目に書き込むと、一番上の行になることです。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");

生成されるテーブルは次のとおりです。

あおね Btwo Cthree
XXX YYYYY ZZZZZZ

4

1 に答える 1

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")));
    }
}
于 2015-02-07T00:01:07.333 に答える