我試圖用XWPF組件使用下面的代碼控制錶行高度爲POI
// InputStream in= Temp.class.getResourceAsStream("Sample.docx");
XWPFDocument doc = new XWPFDocument();
XWPFTable table=doc.createTable(2,2);
// CTDecimalNumber rowSize = table.getCTTbl().getTblPr().getTblStyleRowBandSize();
// rowSize.setVal(new BigInteger("10"));
// table.getRow(1).setHeight(0);
table.getRow(0).getCell(0).setText("Row-0-Cell-0");
table.getRow(0).getCell(1).setText("Row-0-Cell-1");
table.getRow(1).getCell(0).setText("Row-1-Cell-0");
table.getRow(1).getCell(1).setText("Row-1-Cell-1");
FileOutputStream out = new FileOutputStream("simpleTable.docx");
doc.write(out);
out.close();
它正確繪製表格繪製表poi的文件,但細胞的高度過大和寬度也沒有妥善落實到位。我在一張紙條上看到,桌子應該按照內容自動適合。嘗試幾件事情如下:
- 試圖設置高度如上面註釋代碼所示,但 沒有奏效。
- 嘗試讀取現有文檔,如 inputstream註釋代碼所示。這給了一個例外,不能 閱讀poi-ooxml文件。
- 嘗試使用TblStyleRowBandSize,但 始終爲空。不知道如何創建一個新的實例 CTDecimalNumber或TblStyleRowBandSize
在此先感謝。
更多見解: 當我創建一個空表並使用create添加行和列時,它工作正常,不會插入格式化字符。但是創建一個空表格會導致在開始時創建的單元格,我仍然試圖找到一種方法來刪除第一列。新的代碼
XWPFTable table=doc.createTable();
XWPFTableRow row1 = table.createRow();
row1.createCell().setText("Row-0-Cell-0");
row1.createCell().setText("Row-0-Cell-1");
XWPFTableRow row2 = table.createRow();
row2.createCell().setText("Row-1-Cell-0");
row2.createCell().setText("Row-1-Cell-1");
我認爲自動調整是工作,但什麼正在發生的事情是,在轉換格式化符號的可見性後,插入了額外的換行符。不知道爲什麼XWPF將這些格式插入到單元格中。 – lalit