当前位置:首页 > 科技

【poi怎么设置excel】使用POI和反射导入Excel自动识别图元类

前言:

第一次启动excel导入时,每当需要导入新的Excel文件时,都必须重新创建相应的工具以导入Excel。所以我很苦恼,认为有必要使用万能引进的Excel工具。(威廉莎士比亚,Excel工具,Northern Exposure)。

private final static string xls=' xls ';

private final static string xlsx=' xlsx ';

Public static mapstring、object readexcelpoit(object obj)throws exception

{

//fileinputstream fis=(文件inputstream)();

Mapstring,object JSON object=new hashmap();

字串msg=null

list string msg list=new ArrayList();

//创建输入流

file inputstream fis=new file inputstream(new file(' g : \ \ data \ \;));

//通过构造函数传递参数

workbook workbook=getworkbookt(new file(' g : \ \ data \ \;));

//workbook workbook=getworkbook(文件);

int sheets=workbook . getnumberofsheets();

If(图纸1) {

Msg='内容为空';

m(MSG);

J('msg ',msg list);

Return jsonObject

}

//获取任务标记名称

//for(int I=0;IsheetsI ){

//Sy(I);

//

//}

//获取工作表中的第一个工作表

sheet sheet=workbook . get sheet at(0);

//获取行。行号作为参数传递给getRow方法,第一行从0开始计算

//汇入第一行

int firstRowNum=()2;

//获取第一行中的第一个值,并确认它是所需的值

row row 1=(firstRowNum);

row row 2=(first row num-1);

class cl=obj . get class();

field[]fs=cl . getdeclaredfields();

string builder string builder=new string builder();

For (field f3360fs) {

If ()==0){

());

}else {

(',');

());

}

}

string contains in=();

if(row 1==空){

Msg='内容为空';

m(MSG);

J('msg ',msg list);

Return jsonObject

}

//检查必填字段是否存在

int cellNum=-1;

shortrow num=row 2 . getlastcellnum();

for(int I=0;IrowNumI ){

cell cell 1=row 2 . getcell(I);

cell 1 . setcelltype);

If(单元1!=空){

stringcellvalue=cell 1 . getstringcellvalue();

If(!Con(储存格值){

cell num=I;

布雷克;

}

}

}

If (cellNum!=-1){

Msg=

4;不存在需要的字段"; m(msg); j("msg",msgList); return jsonObject; } //最后 一列 // short lastCellNum = row.getLastCellNum(); //最后一行 Integer sheetLastRowNum = (); List<Object> list = new ArrayList<>(); if (sheetLastRowNum<1){ msg="数据行不存在"; m(msg); } for (int i=firstRowNum+1;i<sheetLastRowNum+1;i++){ //获取第i行 Row row = (i); //获取该列 Cell cell1 = null; if (row!=null){ Object object = obj.getClass().newInstance(); BeanU(obj,object); for (int j=0;j<rowNum;j++){ cell1 = row.getCell(j); // String cellValue = row1.getCell(j).getStringCellValue(); String cellValue = row2.getCell(j).getStringCellValue(); if (cell1==null){ msg="第"+i+"行第"+(j+1)+"列值为空"; m(msg); break; } if (cell1!=null){ cell1.setCellType); if (con(cellValue)){ String value = cell1.getStringCellValue(); Class cal = Cu; Field field = cal.getDeclaredField(cellValue); (true); (object,value); } } } Object o =Anno(object).get("result"); if (o)){ li(object); } } } logger.warn("msgList={}",msgList); j("list",list); j("msg",msgList); workbook.close(); (); return jsonObject; } public static Workbook getWorkBookT(File file) { //获得文件名 // String fileName = (); String fileName = (); //创建Workbook工作薄对象,表示整个excel Workbook workbook = null; try { //获取excel文件的io流 // InputStream is = (); FileInputStream is = new FileInputStream(file); //根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象 i(xls)){ //2003 workbook = new HSSFWorkbook(is); }else i(xlsx)){ //2007 workbook = new XSSFWorkbook(is); } } catch (IOException e) { logger.info()); } return workbook; }

Excel导入规则:




注释:前三行不被读取

第二行内容字段与接收实体类字段相同

--

name

phone

address

姓名

手机号

地址

张三

11011011000

杭州

本次demo中,前三行是被忽略的。第二行的字段与接受的实体类相对应。



如上:只需实体类中用name,phone,address就能接收到姓名为张三 手机号为 11011011000 地址为杭州

ps:

这里我们只对第一张Excel表进行了处理,需要对所有表进行处理的可自行修改

1.《【poi怎么设置excel】使用POI和反射导入Excel自动识别图元类》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【poi怎么设置excel】使用POI和反射导入Excel自动识别图元类》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2516268.html

上一篇

【EXcel怎么链接CAD】插入排气系统生成的Excel表格CAD文件

【poi怎么设置excel】基于SpringBoot POI实现的excel导入和导出(教程)

  • 【poi怎么设置excel】基于SpringBoot POI实现的excel导入和导出(教程)
  • 【poi怎么设置excel】基于SpringBoot POI实现的excel导入和导出(教程)
  • 【poi怎么设置excel】基于SpringBoot POI实现的excel导入和导出(教程)
【poi怎么设置excel】使用POI将查询到的数据表数据逐个表地导出到Excel中

【poi怎么设置excel】使用POI将查询到的数据表数据逐个表地导出到Excel中

poi怎么设置excel相关介绍,网站防火墙 网站防火墙 您的请求带有不合法参数,已被网站管理员设置拦截! 可能原因:您提交的内容包含危险的攻击请求 如何解决: 1)检查提交内容; 2)如网站托管,请联系空间提供商; 3)普通网站访客...

【poi怎么设置excel】POI导出Excel

  • 【poi怎么设置excel】POI导出Excel
  • 【poi怎么设置excel】POI导出Excel
  • 【poi怎么设置excel】POI导出Excel
【poi怎么设置excel】Java使用poi导入导出Excel

【poi怎么设置excel】Java使用poi导入导出Excel

poi怎么设置excel相关介绍,前言 1、将用户信息导出到excel表(导出数据……。)。 2、将Excel表中的信息输入网站数据库(上传练习)。……。)。 设计为excel的开发过程,例如Excel导出、Excel导入数据库! E...

【poi怎么设置excel】从Java、POI、样板导出Excel文件(xls和xlsx)、设置图纸样式

【poi怎么设置excel】从Java、POI、样板导出Excel文件(xls和xlsx)、设置图纸样式

poi怎么设置excel相关介绍,阿帕奇poi POI是[Poor Obfuscation Implementation]的首字母缩写,意思是[可怜的模糊实现]。Java进程读取和写入Microsoft Office格式文件的能力。 ...