分享一个操作excel的工具类,这个工具分3个部分,
ExcelUtil.java //工具类
ExcelSheetPO.java //实体对象
ExcelVersion.java //版本枚举
可以把excel数据读取到内存中,转换为 List<List<Object>>,也可以根据List<List<Object>>转化成excel文件
依赖的jar包是poi,有用到spring框架的集合工具类,不能依赖的可以动手改改
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
ExcelUtil.java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
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.CellValue;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
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.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.WorkbookUtil;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.zkingsoft.common.tools.FileUtil;
/**
* excel工具类 提供读取和写入excel的功能
*
* @author JIANGYOUYAO
* @email 935090232@qq.com
* @date 2017年12月20日
*/
public class ExcelUtil {
/**
* 标题样式
*/
private final static String STYLE_HEADER = "header";
/**
* 表头样式
*/
private final static String STYLE_TITLE = "title";
/**
* 数据样式
*/
private final static String STYLE_DATA = "data";
/**
* 存储样式
*/
private static final HashMap<String, CellStyle> cellStyleMap = new HashMap<>();
/**
* 读取excel文件里面的内容 支持日期,数字,字符,函数公式,布尔类型
*
* @author JIANGYOUYAO
* @email 935090232@qq.com
* @date 2017年12月20日
* @param file
* @param rowCount
* @param columnCount
* @return
* @throws FileNotFoundException
* @throws IOException
*/
public static List<ExcelSheetPO> readExcel(File file, Integer rowCount, Integer columnCount)
throws FileNotFoundException, IOException {
// 根据后缀名称判断excel的版本
String extName = FileUtil.getFileExtName(file);
Workbook wb = null;
if (ExcelVersion.V2003