• 大小: 8KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Java
  • 标签: java  

资源简介

通用的解析excel的工具类,适合xls和xlsx两种类型。同时针对特殊数据类型和空行做了处理

资源截图

代码片段和文件信息

package net.virtue.common.fileUtil;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
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;
import lombok.extern.slf4j.Slf4j;
import net.virtue.model.DroneAircraft;
@Slf4j
public class ExlUtil {

/* 解析excel工具类使用方法demo */
public static void main(String[] args) {
File excelFile = new File(“D://无人机批量上传模板 (5).xlsx“);
int sheetNum = 0;
int startRowNum = 1;
int startColumn = 0;
Map relMap = new HashMap();
relMap.put(0 “serialNumber“);
relMap.put(1 “model“);
relMap.put(2 “emptyWeight“);
relMap.put(3 “maxTaskLoad“);
relMap.put(4 “maxTakeOffWeight“);
relMap.put(5 “maxCruisingSpeed“);
relMap.put(6 “maxEnduranceMileage“);
relMap.put(7 “maxEnduranceTime“);
relMap.put(8 “manufacturerCode“);
try {
List list = paserExcel2Obj(excelFilesheetNumstartRowNumstartColumnDroneAircraft.classrelMap);
for (DroneAircraft droneAircraft : list) {
System.out.println(droneAircraft);
}
System.out.println(“parse success“);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
 * 将excel转化为javaBean
 * @param excelFile 待读取的excel文件
 * @param sheetNum sheet页序号(取值从0开始)
 * @param startRowNum 数据起始行号(若第一行为标题行,则起始行号为1)
 * @param startColumn 数据起始列号(若从第一列开始,则起始列号为0)
 * @param claz 目标对象javaBean
 * @param relMap javaBean的属性与excel列的对应关系  

map.put(0“username“); 


        

map.put(1“password“); 


 * 
 * @return List
 * @throws InstantiationException 
 * @throws InvocationTargetException 
 * @throws IllegalAccessException 
 * @throws IOException 
 */
public static  List paserExcel2Obj(File excelFile int sheetNum int startRowNum int startColumn
Class claz Map relMap)throws IllegalAccessException InvocationTargetException InstantiationException IOException {
List list = new ArrayList<>();

/* 1、读入文件 */
Workbook workbook = readExcel(excelFile);

/* 2、解析excel */
if (workbook != null) {
Sheet sheet = workbook.getSheetAt(sheetNum);
int lastRowNum = sheet.getLastRowNum();
list = paserSheet2Obj(sheet startRowNum startColumn lastRowNum cl

评论

共有 条评论