关于用poi依赖导出ppt,在ppt创建表格的问题
通过 XSLFTable table = slide.createTable(6,6);创建一个6行6列的表格
然后通过循环获取表格每行的每个单元格,插入数据
XSLFTextParagraph textParagraph = cells.get(j).addNewTextParagraph();
XSLFTextRun textRun = textParagraph.addNewTextRun();
textRun.setText("序号");
由于问题描述比较简略,无法准确了解具体的情况,下面是针对给出的参考资料提供的解决方案:
针对序号单元格上面出现空白行的情况,可以通过PPTUtil工具中提供的方法 XSLFTableCell.setBorderWidth
来设置单元格的边框宽度为0,从而去掉上面的空白行。具体方法如下:
pptUtil.setCellBorderWidth(tableCell, BorderEdge.top, 0);
其中,tableCell
是需要去掉上面空白行的单元格对象。
完整代码示例:
@Test
public void testAdjustTable() {
// 读取 ppt
PPTUtil pptUtil = new PPTUtil(filePath);
// 获取需要操作的幻灯片和表格
XSLFTable table = pptUtil.getTableFromSlide(pptUtil.getSlides().get(0));
XSLFTableRow row = pptUtil.getTableRows(table).get(2);
// 获取需要填充数据的单元格(这里假设需要填充的是第3列)
XSLFTableCell dataCell = row.getCells().get(2);
// 设置单元格数据
pptUtil.setCellValue(dataCell, "100");
// 去除上面的空白行
pptUtil.setCellBorderWidth(dataCell, BorderEdge.top, 0);
// 保存更新后的 ppt 文件
pptUtil.writePPT(exportPath);
}