1. 程式人生 > >POI對Excel單元格內容修改

POI對Excel單元格內容修改

  // XLSX版本
 const in= new Packages.java.io.FileInputStream("C:\\LJT\\test.xlsx");
 const wb= Packages.org.apache.poi.xssf.usermodel.XSSFWorkbook("in")

 //xls版本

  const in= new Packages.java.io.FileOutputStream("C:\\LJT\\test.xls");
  const wb= new Packages.org.apache.poi.hssf.usermodel.HSSFWorkbook("in")

  //開啟之後對某個單元格進行賦值修改

   //獲取表格一的工作表
  let sheet = wb.getSheet("表格一");

 //獲取表格一中 第3行(根據索引)
  let row = sheet.getRow(2);

  //獲取表格一中 第3行的第五列(根據索引)
   let cell = row.getCell(4);
 //賦值
 cell.setCellValue("修改成功");

 此時表格一第3行第5列 就變成了修改成功

  //在儲存一下
 const out= new Packages.java.io.FileOutputStream("C:\\LJT\\test.xlsx");
  
            doc.write(out)
   
            out.close();
 
  
 

此時如果你要修改的單元格為空或者這一行都是空會報錯

果如是97和07兩個Excel版本只需要吧上面的wb修改一下 路徑字尾修改一下

Java中的流我這個關閉的步驟省略了 自己關閉一下就行了

//如果是空需要插入新單元格在賦值


  //開啟之後對某個單元格進行賦值修改

   //獲取表格一的工作表
  let sheet = wb.getSheet("表格一");

 //獲取表格一中 第3行(根據索引)
  let row = sheet.getRow(2);

      //如果行是空就建立新行
   if (row == null) {
       row = sheet.createRow(2);
                    }


  //獲取表格一中 第3行的第五列(根據索引)
   let cell = row.getCell(4);

  if(cell==null){
   //如果單元格是空就建立新單元格在修改
   let newCell = row.createCell(4);
       newCell.setCellValue("修改成功");
}
 //賦值
 cell.setCellValue("修改成功");

 //在儲存一下
 const out= new Packages.java.io.FileOutputStream("C:\\LJT\\test.xlsx");
  
            doc.write(out)
   
            out.close();
 

 
 

此時對單元格內容修改就沒什麼問題了