匯入Excel表格時使用java的POI操作
阿新 • • 發佈:2018-12-30
首先想要操作Excel就先建立操作物件,本文是通過servlet方式匯入的Excel並進行對錶格操作,程式碼如下
newReq.setCharacterEncoding("UTF-8"); FileItem item=ExcelUtil.getFileItem(newReq); //excel檔案輸入流 excelIn = item.getInputStream(); XSSFWorkbook workbook = new XSSFWorkbook(excelIn); // 獲取第一個工作簿 XSSFSheet sheet = workbook.getSheetAt(0); // 獲取總行數 int rowCount = sheet.getPhysicalNumberOfRows(); // 第一行 Row titleRow = sheet.getRow(0); // 獲取總列數 int cellCount = titleRow.getPhysicalNumberOfCells();
拿到workbook之後就可以為所欲為的操作表格了。下面主要講在匯入過程遇到的一些問題。
1、表格資料有可能是字串或者數字或者其他,此時就不能一概使用getStringCellValue(),如果想要獲取的是字串格式,直接使用toString(),比如獲取第i行第j列單元格的文字
sheet.getRow(i).getCell(j).toString;
2、如果單元格中沒有值,則後臺獲取的cell物件為null ,此時如果在迴圈,則需要先建立單元格,不能直接使用toString來獲取值,因為cell為空因此會報錯
XSSFCell cell = sheet.getRow(i).getCell(j); cell = sheet.getRow(i).createCell(j);
3、如果使用toString方法來獲取文字,則需要設定單元格為文字型別
sheet.getRow(i).getCell(j).setCellType(HSSFCell.CELL_TYPE_STRING);