分享

java POI 修改Excel2007时候的方法。

 筑心wup 2013-05-01
读取的方法很简单
Java代码  收藏代码
  1. public class ReadExcelPOI {  
  2.   
  3.     public void readExcel() {  
  4.         try {  
  5.   
  6.             String fileName = "E:\\xxx\\xxx\\a.xlsx";  
  7.             XSSFWorkbook xwb = new XSSFWorkbook(fileName);  
  8.             // 循环工作表Sheet  
  9.             for (int numSheet = 0; numSheet < xwb.getNumberOfSheets(); numSheet++) {  
  10.                 XSSFSheet xSheet = xwb.getSheetAt(numSheet);  
  11.                 if (xSheet == null) {  
  12.                     continue;  
  13.                 }  
  14.   
  15.                 // 循环行Row  
  16.                 for (int rowNum = 0; rowNum <= xSheet.getLastRowNum(); rowNum++) {  
  17.                     XSSFRow xRow = xSheet.getRow(rowNum);  
  18.                     if (xRow == null) {  
  19.                         continue;  
  20.                     }  
  21.   
  22.                     // 循环列Cell  
  23.                     for (int cellNum = 0; cellNum <= xRow.getLastCellNum(); cellNum++) {  
  24.                         XSSFCell xCell = xRow.getCell(cellNum);  
  25.                         if (xCell == null) {  
  26.                             continue;  
  27.                         }  
  28.                         System.out.print("        " + getValue(xCell));  
  29.                     }  
  30.                     System.out.println();  
  31.                 }  
  32.             }  
  33.   
  34.         } catch (Exception e) {  
  35.             e.printStackTrace();  
  36.         }  
  37.     }  
  38.   
  39.     private String getValue(XSSFCell xCell) {  
  40.         if (xCell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {  
  41.   
  42.             return String.valueOf(xCell.getBooleanCellValue());  
  43.         } else if (xCell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {  
  44.   
  45.             return String.valueOf(xCell.getNumericCellValue());  
  46.         } else {  
  47.   
  48.             return String.valueOf(xCell.getStringCellValue());  
  49.         }  
  50.   
  51.     }  
  52.   
  53.     public static void main(String[] args) {  
  54.         ReadExcelPOI readExcelService = new ReadExcelPOI();  
  55.         readExcelService.readExcel();  
  56.     }  
  57. }  

修改:
Java代码  收藏代码
  1. public class WriteExcelPOI {  
  2.   
  3.     public void writeExcelPOI() {  
  4.         try {  
  5.   
  6.             String fileName = "E:\\xxx\\xxx\\a.xlsx";  
  7.             XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(fileName));  
  8.   
  9.             XSSFSheet xSheet = xwb.getSheetAt(0);  
  10.             XSSFRow xRow = xSheet.createRow(0);  
  11.             XSSFCell xCell = xRow.createCell(0);  
  12.   
  13.             xCell.setCellValue("asdfasd");  
  14.   
  15.             FileOutputStream out = new FileOutputStream(fileName);  
  16.             xwb.write(out);  
  17.             out.close();  
  18.   
  19.         } catch (Exception e) {  
  20.             e.printStackTrace();  
  21.         }  
  22.     }  
  23.   
  24.     private String getValue(XSSFCell xCell) {  
  25.         if (xCell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {  
  26.   
  27.             return String.valueOf(xCell.getBooleanCellValue());  
  28.         } else if (xCell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {  
  29.   
  30.             return String.valueOf(xCell.getNumericCellValue());  
  31.         } else {  
  32.   
  33.             return String.valueOf(xCell.getStringCellValue());  
  34.         }  
  35.   
  36.     }  
  37.   
  38.     public static void main(String[] args) {  
  39.         WriteExcelPOI a = new WriteExcelPOI();  
  40.         a.writeExcelPOI();  
  41.     }  
  42. }  


读的时候下面都可以:
方法一:
String fileName = "E:\\xxx\\xxx\\a.xlsx";
XSSFWorkbook xwb = new XSSFWorkbook(fileName);
方法二:
String fileName = "E:\\xxx\\xxx\\a.xlsx";
XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(fileName));

修改的时候,只能使用流:
String fileName = "E:\\xxx\\xxx\\a.xlsx";
XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(fileName));


区别就是在为何 使用流就可以修改成功,而去的时候直接使用文件名称也是可以的。

开始的时候我就是使用了文件名称修改,就是不行。贴出来给遇到的同学也有个参考。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约