Java使用poi批量匯入excel
本文為原創程式碼,經過測試可以讀取excel中的文字,這裡是按照7X*,每行有7列;也可以自行設定
一、建立List用來儲存excel中的行和列,傳入本地檔案絕對路徑,或者伺服器上相對路徑,匯入可使用excel2007或excel2003 public static List<String> readExcel(String fileName) { // String fileName = "C:\\Users\\Administrator\\Desktop\\demo.xls"; boolean isE2007 = false; // 判斷是否是excel2007格式 if (fileName.endsWith("xlsx")) {// 判斷後綴是否相同 isE2007 = true; } try { InputStream input = new FileInputStream(fileName); // 建立輸入流 Workbook wb = null; // 根據檔案格式(2003或者2007)來初始化 if (isE2007) { wb = new XSSFWorkbook(input); } else { wb = new HSSFWorkbook(input); } Sheet sheet = wb.getSheetAt(0); List<String> list = new LinkedList<String>(); for(int i = 1;i<sheet.getLastRowNum();i++){ for(int j = 0;j<sheet.getRow(i).getLastCellNum();j++){ if(((i) < sheet.getLastRowNum())&&(j<sheet.getRow(i).getLastCellNum())){ if("".equals(sheet.getRow(i).getCell(j))||(sheet.getRow(i).getCell(j) == null)){ list.add(""); }else{ list.add(sheet.getRow(i).getCell(j).toString()); System.out.print(sheet.getRow(i).getCell(j).toString()+"\t"); } } } System.out.println(); } return list; } catch (Exception ex) { throw new RuntimeException(ex.getMessage()); } } 二、進行測試匯入excel內容,建立JSONArray,用於區分每行資料,格式為:{{xxx,xx},{xx,xx},{...}};list = DEMO1.readExcel("F:\\X5\\BeX5_V3.2.1\\model\\BIZ\\DSS_AFRICA\\Master\\logic\\code\\upload\\ImportExcel.xls"); System.out.println(list.size()); jsonArr = new JSONArray(); for(int i = 0;i<list.size();i+=col){//i表示excel有多少列