我正在使用Java v8和" org.apache.poi"和" poi-ooxml" (均为3.9版本)。我正在尝试使用包含表格的幻灯片创建一个powerpoint。
我可以让powerpoint文件创建好,但幻灯片是空的,但是右上角有一个小黑盒子。我猜测我错过了一些小东西,却看不出它是什么。我已经尝试过一些网络上的例子,它们看起来和我看到的一样。
这是我在Powerpoint幻灯片中看到的:
我的代码如下:
XMLSlideShow powerpoint = new XMLSlideShow();
XSLFSlide slide = powerpoint.createSlide();
XSLFTable table = slide.createTable();
table.setAnchor(new Rectangle(50, 50, 800, 800));
int numColumns = 3;
int numRows = 5;
XSLFTableRow headerRow = table.addRow();
headerRow.setHeight(50);
// header
for (int i = 0; i < numColumns; i++) {
XSLFTableCell th = headerRow.addCell();
XSLFTextParagraph p = th.addNewTextParagraph();
p.setTextAlign(TextAlign.CENTER);
XSLFTextRun r = p.addNewTextRun();
r.setText("Header " + (i + 1));
r.setFontSize(20);
r.setFontColor(Color.white);
th.setFillColor(new Color(79, 129, 189));
table.setColumnWidth(i, 150);
}
// rows
for (int rownum = 0; rownum < numRows; rownum++) {
XSLFTableRow tr = table.addRow();
tr.setHeight(50);
// header
for (int i = 0; i < numColumns; i++) {
XSLFTableCell cell = tr.addCell();
XSLFTextParagraph p = cell.addNewTextParagraph();
XSLFTextRun r = p.addNewTextRun();
r.setText("Cell " + (i + 1));
if (rownum % 2 == 0) {
cell.setFillColor(new Color(208, 216, 232));
}
else {
cell.setFillColor(new Color(233, 247, 244));
}
}
}
try {
try (FileOutputStream out = new FileOutputStream("c:\\myFile.pptx"))
{
try {
powerpoint.write(out);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
任何想法/指导都会非常感激。
谢谢Ro