我正在尝试使用apache poi编辑excel表, 我有一个有2行5列的工作表 如果第2行的第二个单元格为null,那么它应该添加第3行, 但是我得到了一个未找到类的异常,尽管我的D驱动器中存在UpdateXLS。
以下是代码:
public class New {
public static void main(String[] args){
try{
InputStream inp = new FileInputStream("D:\\UpdateXLS.xls");
//InputStream inp = new FileInputStream("workbook.xlsx");
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(2);
Cell cell = row.getCell(2);
if (cell == null)
cell = row.createCell(3);
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellValue("a test");
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("UpdateXLS.xls");
wb.write(fileOut);
fileOut.close();
}
catch(Exception e){
e.printStackTrace();
}
}
我该怎么办?
答案 0 :(得分:1)
从comment,我可以建议您在指定的路径上退出检查文件。
使用File
File f = new File("D:\\UpdateXLS.xls");
//check whether file exists or not to avoid any further exceptions
if(f.exists()){
Workbook wb = WorkbookFactory.create(f);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(2);
......
.......
........
}
表示尝试打开由指定路径名表示的文件失败。
当具有指定路径名的文件不存在时,FileInputStream,FileOutputStream和RandomAccessFile构造函数将抛出此异常。
如果文件存在但由于某种原因不可访问,这些构造函数也会抛出它,例如当尝试打开只读文件进行写入时< /强>
当您编写文件时,请检查您的路径
FileOutputStream fileOut = new FileOutputStream("UpdateXLS.xls");
更改为
FileOutputStream fileOut = new FileOutputStream("D:\\UpdateXLS.xls");
答案 1 :(得分:0)
问题似乎在
FileOutputStream fileOut = new FileOutputStream("UpdateXLS.xls");
尝试用以下代码替换该行:
FileOutputStream fileOut = new FileOutputStream("D:\\UpdateXLS.xls");