1

私の文書と同じテーブル構造を持つワード文書からテーブルを取得する必要があります。つまり、行と列を持つテーブルが必要です。

現在、正常に動作するコードを使用していますが、フォーマットされていないセル内のテキストのみが表示されます。私のドキュメントのように、テーブル構造を持つテーブル全体を取得する方法はありますか?

以下は、テーブルを読み取るために使用しているコードです

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.hwpf.usermodel.Table;
import org.apache.poi.hwpf.usermodel.TableCell;
import org.apache.poi.hwpf.usermodel.TableRow;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class TableTest {

    public static void main(String args[]) throws IOException
    {
        String fileName="D:\\vignesh\\model.doc";

        InputStream fis=new FileInputStream(fileName);
        POIFSFileSystem fs=new POIFSFileSystem(fis);
        HWPFDocument doc=new HWPFDocument(fs);

        Range range=doc.getRange();

        for(int i=0;i<range.numParagraphs();i++)
        {
            Paragraph par=range.getParagraph(i);
            System.out.println(par.text());
        }
        Paragraph tablePar=range.getParagraph(0);
        if(tablePar.isInTable())
        {
            Table table=range.getTable(tablePar);
            for(int rowIdx=0;rowIdx<table.numRows();rowIdx++)
            {
                TableRow row=table.getRow(rowIdx);
                System.out.println("row "+(rowIdx+1)+",is table header: "+row.isTableHeader());
                for(int colIdx=0;colIdx<row.numCells();colIdx++)
                {
                    TableCell cell=row.getCell(colIdx);
                    System.out.println("column "+(colIdx+1)+",text= "+cell.getParagraph(0).text());
                }
            }
        }
    }

}

セルを含むテーブル全体を取得する必要があり、そのテーブルを使用して PDF ドキュメントを作成する別のクラスにそれを渡す必要があります。テーブルを取得するためのコード例は、私にとって非常に役立ちます。

4

0 に答える 0