資源簡介
通過這個工具類可以輕松實現Excel表格的讀取解析,使Excel中的數據以json字符串的形式返回

代碼片段和文件信息
package?com.bjut.ssh.utils;
import?org.apache.poi.hssf.usermodel.HSSFCell;
import?org.apache.poi.hssf.usermodel.HSSFRow;
import?org.apache.poi.hssf.usermodel.HSSFSheet;
import?org.apache.poi.hssf.usermodel.HSSFWorkbook;
import?org.apache.poi.xssf.usermodel.XSSFCell;
import?org.apache.poi.xssf.usermodel.XSSFRow;
import?org.apache.poi.xssf.usermodel.XSSFSheet;
import?org.apache.poi.xssf.usermodel.XSSFWorkbook;
import?org.springframework.web.multipart.MultipartFile;
import?java.io.IOException;
import?java.io.InputStream;
import?java.util.ArrayList;
import?java.util.List;
public?class?ImportExcelReadUtil?{
????public?int?totalRows;?//sheet中總行數
????public?static?int?totalCells;?//每一行總單元格數
????public?List>?readExcel(MultipartFile?file)?throws?IOException?{
????????if(file==null||ImportExcelUtil.EMPTY.equals(file.getOriginalFilename().trim())){
????????????return?null;
????????}else{
????????????String?postfix?=?ImportExcelUtil.getPostfix(file.getOriginalFilename());
????????????if(!ImportExcelUtil.EMPTY.equals(postfix)){
????????????????if(ImportExcelUtil.OFFICE_EXCEL_2003_POSTFIX.equals(postfix)){
????????????????????return?readXlsx(file);
????????????????}else?if(ImportExcelUtil.OFFICE_EXCEL_2010_POSTFIX.equals(postfix)){
????????????????????return?readXlsx(file);
????????????????}else{
????????????????????return?null;
????????????????}
????????????}
????????}
????????return?null;
????}
????@SuppressWarnings(“deprecation“)
????public?List>?readXlsx(MultipartFile?file){
????????List>?list?=?new?ArrayList>();
????????//?IO流讀取文件
????????InputStream?input?=?null;
????????XSSFWorkbook?wb?=?null;
????????ArrayList?rowList?=?null;
????????try?{
????????????input?=?file.getInputStream();
????????????//?創建文檔
????????????wb?=?new?XSSFWorkbook(input);
????????????//讀取sheet(頁)
????????????for(int?numSheet=0;numSheet ????????????????XSSFSheet?xssfSheet?=?wb.getSheetAt(numSheet);
????????????????if(xssfSheet?==?null){
????????????????????continue;
????????????????}
????????????????totalRows?=?xssfSheet.getLastRowNum();
????????????????//讀取Row從第3行開始
????????????????for(int?rowNum?=?2;rowNum?<=?totalRows;rowNum++){
????????????????????XSSFRow?xssfRow?=?xssfSheet.getRow(rowNum);
????????????????????if(xssfRow!=null){
????????????????????????rowList?=?new?ArrayList();
????????????????????????totalCells?=?xssfRow.getLastCellNum();
????????????????????????//讀取列,從第一列開始
????????????????????????for(int?c=0;c<=totalCells+1;c++){
????????????????????????????XSSFCell?cell?=?xssfRow.getCell(c);
????????????????????????????if(cell==null){
????????????????????????????????rowList.add(ImportExcelUtil.EMPTY);
????????????????????????????????continue;
????????????????????????????}
????????????????????????????rowList.add(ImportExcelUtil.getXValue(cell).trim());
???????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5569??2018-11-13?16:55??ImportExcelReadUtil.java
?????文件????????3369??2018-11-13?16:25??ImportExcelUtil.java
?????文件?????????306??2018-11-13?16:32??XSSFDateUtil.java
- 上一篇:treeselect.tag超全源碼
- 下一篇:北郵 模電實驗 電壓比較器仿真報告
評論
共有 條評論