我试图在'xlsx'文件中附加数据,但是获取空指针异常。我尝试使用现有的解决方案解决问题,但没有为我工作。
以下是我在xlsx文件中编写的代码。
package test;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test1 {
public static void main(String[] args) throws IOException {
String excelFileName = "Y:\\RB and UCM Production Support\\RB\\RB Prod Support Knowledge Base\\UAR\\test.xlsx";//name of excel file
String sheetName = "Sheet1";//name of sheet
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet(sheetName) ;
//XSSFRow r = sheet.createRow(0);
//iterating r number of rows
for (int r=0;r < 5; r++ )
{
XSSFRow row = sheet.createRow(r);
//iterating c number of columns
for (int c=0;c < 5; c++ )
{
XSSFCell cell = row.createCell(c);
cell.setCellValue("Cell "+r+" "+c);
System.out.println("Cell "+r+" "+c);
}
}
// wb.close();
// String excelFileName1 = "Y:\\RB and UCM Production Support\\RB\\RB Prod Support Knowledge Base\\UAR\\test1.xlsx";
FileOutputStream fileOut = new FileOutputStream(excelFileName);
//write this workbook to an Outputstream.
wb.write(fileOut);
fileOut.flush();
fileOut.close();
wb.close();
}
}
此外,我已将所有jar文件添加到项目路径中。
此外,在执行项目时,会出现错误弹出窗口。 下面是相同的屏幕截图。
请帮助!!!!
答案 0 :(得分:0)
这似乎是构建问题,或者您没有使用正确的Poi.jar。
//Implementation org.apache.poi.POIXMLDocument.write(OutputStream)
public final void write(OutputStream stream) throws IOException {
//force all children to commit their changes into the underlying OOXML Package
Set<PackagePart> context = new HashSet<PackagePart>();
onSave(context);
context.clear();
//save extended and custom properties
getProperties().commit();
getPackage().save(stream);
}
根据附加的错误屏幕截图,发生getProperties()
异常,当POI jar没有获取基础属性或在没有OPCPackage时无法创建属性时发生。
注意:强>
POI在您创建XSSFWorkbook()
参考:XSSFWorkbook()的Javadoc以获取更多详细信息:
要获得有效的jar,请使用以下链接/或使用maven依赖项: https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml/3.17