首先想要操作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);