• 大小: 10KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Java
  • 标签: excel导入  多个sheet  

资源简介

此文件为多个sheet的excel导入,可以根据文件后缀,自动适应上传文件的版本,返回为list或者map,支持2003 版本以及2007版本的excel

资源截图

代码片段和文件信息

package com.ca.ranyou.util;

import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Cellstyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * excel导入
 * @author Liuhw
 *
 */
public class ImportExcelUtil {

private final static String Excel_2003 = “.xls“; //2003 版本的excel
private final static String Excel_2007 = “.xlsx“; //2007 版本的excel

/**
 * 返回list
 * @param fis
 * @param fileName
 * @return
 * @throws Exception
 */
public Listject>> getBankListByExcel(InputStream fis String fileName) throws Exception{
//创建Excel工作簿
Workbook work = this.getWorkbook(fis fileName);
if(work == null) {
throw new Exception(“创建Excel工作簿为空!“);
}
Sheet sheet = null;
Row row = null;
Cell cell = null;
Listject>> list = new ArrayListject>>();
// Map>> dataMap = new HashMap>>();
int sheetCount = 0;
sheetCount = work.getNumberOfSheets();
//遍历Excel中的所有sheet
for(int i = 0; i //如果Excel就一页一个sheet则i=0
if(i==0){
sheet = work.getSheetAt(i);
 String sheetName = sheet.getSheetName();
 System.out.println(sheetName);
if(sheet == null) {continue;}
//遍历当前sheet中的所有行
//int totalRow = sheet.getPhysicalNumberOfRows();//如果excel有格式,这种方式取值不准确
int totalRow = sheet.getPhysicalNumberOfRows();
for(int j = sheet.getFirstRowNum(); j row = sheet.getRow(j);

if(!isRowEmpty(row)) {
System.out.println(“=“);
//if(row != null && !““.equals(row)) {
//获取第一个单元格的数据是否存在
Cell fristCell=row.getCell(0);
if(fristCell!=null){
//遍历所有的列
Listject> li = new ArrayListject>();
int totalColum = row.getLastCellNum();
for(int y = row.getFirstCellNum(); y cell = row.getCell(y);
cell.setCellType(Cell.CELL_TYPE_STRING);
String value = cell.getStringCellValue();
 li.add(cell);
}
list.add(li);
}
 
}else if(isRowEmpty(row)){
continue;
}

}
}else{
//如果是第二页sheet要从第二行遍历数据去掉标题行即i>0
sheet = work.getSheetAt(i);
 String sheetName = sheet.getSheetName();
 System.out.println(sheetName

评论

共有 条评论