Я использую 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();
}
Буду очень признателен за любые мысли / указания.
Спасибо, Ро