50,528
社区成员
发帖
与我相关
我的任务
分享
PdfPCell cell = new PdfPCell(new Paragraph(str, font));
cell.setMinimumHeight(25);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setColspan(colsnum);//单元格所在列
cell.setRowspan(rownum);//单元格所在行
table.addCell(pdfPCell);
。。。
workbook.close();
document.open();
document.add(table);
document.close();
pdfWriter.close();
Exception in thread "main" com.lowagie.text.DocumentException: java.lang.NullPointerException
at com.lowagie.text.pdf.PdfDocument.add(Unknown Source)
at com.lowagie.text.Document.add(Unknown Source)
at com.ExcelToPdf.readExcel(ExcelToPdf.java:159)
at com.ExcelToPdf.main(ExcelToPdf.java:290)
Caused by: java.lang.NullPointerException
at com.lowagie.text.pdf.PdfPTable.getRowHeight(Unknown Source)
at com.lowagie.text.pdf.PdfPTable.calculateHeights(Unknown Source)
at com.lowagie.text.pdf.PdfPTable.setTotalWidth(Unknown Source)
at com.lowagie.text.pdf.ColumnText.goComposite(Unknown Source)
at com.lowagie.text.pdf.ColumnText.go(Unknown Source)
at com.lowagie.text.pdf.ColumnText.go(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.addPTable(Unknown Source)
... 4 more
boolean flag = true;
。。。
int firstColumn = range.getFirstColumn();
int lastColumn = range.getLastColumn();
int firstRow = range.getFirstRow();
int lastRow = range.getLastRow();
if (k == firstRow && i == firstColumn) { //k是当前循环的行index,i为当前循环的列index
PdfPCell cell = new PdfPCell(new Paragraph(str, font));
cell.setMinimumHeight(25);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setColspan(i);//单元格所在列
cell.setRowspan(k);//单元格所在行
table.addCell(pdfPCell);
}
flag = false;
break;
//这里是为了防止itext读取合并单元格的值只读取一次,其实合并单元格就第一次有值,其它的都是""
if (flag && !"".equals(value)) {
table.addCell(getPDFCell(value, font));
}
请问我这样写有问题吗,怎么合并多行多列就报空指针了呢