未为新添加的行设置单元格值:使用 apache poi
Cell values not getting set for newly added rows : using apache poi
我在ppt幻灯片中有一个table。 table 的数据将从 String[]
.
的 ArrayList
中读取(ArrayList
中的每个对象将包含一行数据)
如果 table 中的行数小于 ArrayList
的大小,将添加新行以匹配 ArrayList
的大小。
这里的问题是正在为现有行设置数据,而不是为新添加的行设置数据。请在下面找到代码片段。
任何 help/suggestion 非常感谢。提前致谢。
XSLFTable table = (XSLFTable) shape;
int noOfDataRows=table.getNumberOfRows()-1;
if(noOfDataRows<ap.size()) {
for(int rws=0;rws<(ap.size()- noOfDataRows);rws++) {
System.out.println(" Adding row");
table.addRow();
}
}
List<XSLFTableRow> rows = table.getRows();
for (int i = 0; i < ap.size(); i++) {
String[] awaitprop={'1','2','3','4','5','6','7','8'};
XSLFTableRow row=rows.get(i+1);
List<XSLFTableCell> cells=row.getCells();
for(int j=0;j<cells.size();j++) {
XSLFTableCell cell=cells.get(j);
cell.clearText();
XSLFTextParagraph paragraph=cell.addNewTextParagraph();
paragraph.setTextAlign(TextAlign.CENTER);
XSLFTextRun textRun=paragraph.addNewTextRun();
textRun.setFontFamily("Calibri");
textRun.setFontSize(11);
textRun.setText(awaitprop[j]);
}
}
参考以下tutorial,我想首先你应该在新行中创建单元格。然后你可以在那里放一个内容。
XSLFTableRow headerRow = table.addRow();
for(int i = 0; i < 3; i++) {
XSLFTableCell th = headerRow.addCell();
XSLFTextParagraph p = th.addNewTextParagraph();
XSLFTextRun r = p.addNewTextRun();
r.setText("Text");
}
希望对您有所帮助!
我在ppt幻灯片中有一个table。 table 的数据将从 String[]
.
ArrayList
中读取(ArrayList
中的每个对象将包含一行数据)
如果 table 中的行数小于 ArrayList
的大小,将添加新行以匹配 ArrayList
的大小。
这里的问题是正在为现有行设置数据,而不是为新添加的行设置数据。请在下面找到代码片段。
任何 help/suggestion 非常感谢。提前致谢。
XSLFTable table = (XSLFTable) shape;
int noOfDataRows=table.getNumberOfRows()-1;
if(noOfDataRows<ap.size()) {
for(int rws=0;rws<(ap.size()- noOfDataRows);rws++) {
System.out.println(" Adding row");
table.addRow();
}
}
List<XSLFTableRow> rows = table.getRows();
for (int i = 0; i < ap.size(); i++) {
String[] awaitprop={'1','2','3','4','5','6','7','8'};
XSLFTableRow row=rows.get(i+1);
List<XSLFTableCell> cells=row.getCells();
for(int j=0;j<cells.size();j++) {
XSLFTableCell cell=cells.get(j);
cell.clearText();
XSLFTextParagraph paragraph=cell.addNewTextParagraph();
paragraph.setTextAlign(TextAlign.CENTER);
XSLFTextRun textRun=paragraph.addNewTextRun();
textRun.setFontFamily("Calibri");
textRun.setFontSize(11);
textRun.setText(awaitprop[j]);
}
}
参考以下tutorial,我想首先你应该在新行中创建单元格。然后你可以在那里放一个内容。
XSLFTableRow headerRow = table.addRow();
for(int i = 0; i < 3; i++) {
XSLFTableCell th = headerRow.addCell();
XSLFTextParagraph p = th.addNewTextParagraph();
XSLFTextRun r = p.addNewTextRun();
r.setText("Text");
}
希望对您有所帮助!