当前位置: 首页 > news >正文

长沙网站建设费用逆冬黑帽seo培训

长沙网站建设费用,逆冬黑帽seo培训,网站建设策划公司,WordPress和帝国安全EasyExcel的简单使用 前言 Excel读 1.实体类 2.读监听器与测试类 3.输出结果 Excel写 1.实体类 2.写入Excel的测试类 3.输出结果 填充Excel 1.Excel模板 2.测试类 3.输出结果 前言 EasyExcel类是一套基于Java的开源Excel解析工具类,相较于传统的框架如Apache poi、…

EasyExcel的简单使用

前言
Excel读
1.实体类
2.读监听器与测试类
3.输出结果
Excel写
1.实体类
2.写入Excel的测试类
3.输出结果
填充Excel
1.Excel模板
2.测试类
3.输出结果
前言
EasyExcel类是一套基于Java的开源Excel解析工具类,相较于传统的框架如Apache poi、jxl等更加快速、简洁,还可以解决大文件内存溢出问题,即能让使用者在不用考虑性能、内存的等因素的情况下,快速完成Excel的读(导入)、写(导出)等功能。

版本支持:
2+版本支持Java7&Java6
3+版本支持Java8

这里使用的EasyExcel版本为3.1.1,JDK版本为1.8.0_161,同时辅助使用lombok和fastjson以简化代码或转化为Jason数据。
Maven依赖配置:

<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>		//非必要<version>1.16.10</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>	//非必要<version>1.2.47</version></dependency>
</dependencies>

Excel读
样例内容:
在这里插入图片描述
1.实体类

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TextReadObject {@ExcelProperty(index = 0)private Integer studentId;@ExcelProperty(index = 1)private String studentName;@ExcelProperty(index = 2)private String institute;@ExcelProperty(index = 3)private Integer level_11;@ExcelProperty(index = 4)private Integer level_12;@ExcelProperty(index = 5)private Integer level_21;@ExcelProperty(index = 6)private Integer level_22;
}

其中注解@ExcelProperty可包含两个参数index和value,在简单表头(即表头只占用一行)中以下两条注解基本等价

@ExcelProperty(index = 0)
@ExcelProperty(value = “学号”)

而在复杂表头(即本例)中,需要使用index表示。
另外需要注意的是加入表头名字出现重复,会导致只有一个字段读取到数据,此外在读取操作时不建议index和value同时使用。综上所述,在已知excel表头内容的情况下使用参数index。

2.读监听器与测试类
四个监听器,这里使用前两个
在这里插入图片描述
AnalysisEventListener < T >
所有已实现的接口:Listener、ReadListener
直接已知子类:SyncReadListener
在这里插入图片描述

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import java.util.Map;
import java.util.List;
import lombok.AllArgsConstructor;@AllArgsConstructor
public class DemoDataListener extends AnalysisEventListener<TextReadObject> {private List<TextReadObject> dataList;//读取表头的内容@Overridepublic void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {System.out.println("表头->"+headMap);}//一行一行读取excel中的内容@Overridepublic void invoke(TextReadObject data, AnalysisContext context) {dataList.add(data);}//读取完成之后执行的方法@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {}
}

读取Excel的测试类:

import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;public class ExcelImport {public static void simpleRead() {String fileName = "F:\\rdtext.xls";List<TextReadObject> dataList = new ArrayList<>();//每次会读取100条数据然后返回过来,直接调用使用数据就行EasyExcel.read(fileName, TextReadObject.class, new DemoDataListener(dataList)).sheet(0)//读取第一个sheet.headRowNumber(3) //跳过前三行表头内容,假如是简单表头则这句可省略.doRead();//若需要实现读取全部sheet,可以使用.doReadAll()代替.sheet(0).doRead()for (TextReadObject dl : dataList) {System.out.println(JSON.toJSONString(dl));}}public static void main(String[] args) { simpleRead(); }
}

SyncReadListener:
所有已实现的接口:Listener、ReadListener
直接已知父类:AnalysisEventListener < T >

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.SyncReadListener;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;public class ExcelImportSync {public static void simpleRead() {String fileName = "F:\\text.xls";final List dataList = new ArrayList();EasyExcel.read(fileName, TextReadObject.class, new SyncReadListener() {@Overridepublic void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {System.out.println("表头->"+headMap);}@Overridepublic void invoke(Object object, AnalysisContext context) {dataList.add(object);}}).sheet(0).headRowNumber(3).doRead();for (Object o : dataList) {TextReadObject TOB = (TextReadObject) o;System.out.println(JSON.toJSONString(TOB));}}public static void main(String[] args) { simpleRead(); }
}

相较于AnalysisEventListener < T >,SyncReadListener更加适合对多种实体类实施相同操作的情况,在定义监听器时没有指定具体的实体类。

3.输出结果
二者输出结果一样:
在这里插入图片描述
Excel写
1.实体类

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ColumnWidth(15) //列宽,最大值为255
@HeadRowHeight(16) //表头行高
@ContentRowHeight(16) //数据行高
public class TextWriteObject {//复杂表头自动合并相同的内容@ExcelProperty(index = 0, value = {"学号", "学号", "学号"})private Integer studentId;@ExcelProperty(index = 1, value = {"姓名", "姓名", "姓名"})private String studentName;@ColumnWidth(25)//单独设置列宽@ExcelProperty(index = 2, value = {"学院", "学院", "学院"})private String institute;//复杂表头嵌套@ExcelProperty(index = 3, value = {"成绩", "第一学年", "第一学期"})private Integer level_11;@ExcelProperty(index = 4, value = {"成绩", "第一学年", "第二学期"})private Integer level_12;@ExcelProperty(index = 5, value = {"成绩", "第二学年", "第一学期"})private Integer level_21;@ExcelProperty(index = 6, value = {"成绩", "第二学年", "第二学期"})private Integer level_22;
}

此时在注解@ExcelProperty中可以同时使用参数index和value,用于同时指定位置和内容。

其他未使用注解:
@ContentStyle用于设置内容格式
在这里插入图片描述
在这里插入图片描述
@ContentFontStyle用于设置单元格内容字体格式
在这里插入图片描述
在这里插入图片描述
@ExcelIgnore不将该字段转换成Excel

@ExcelIgnoreUnannotated没有注解的字段都不转换

2.写入Excel的测试类

import java.util.ArrayList;
import java.util.List;public class ExcelExport {public static void simpleWrite(){String fileName = "F:\\wttext.xls";List<TextWriteObject> dataList = new ArrayList<>();dataList.add(new TextWriteObject(2022101, "张三","生命科学院", 653, 602, 683, 707));dataList.add(new TextWriteObject(2022102, "李四","生命科学院", 568, 596, 611, 632));dataList.add(new TextWriteObject(2022103, "王五","生命科学院", 606, 673, 624, 653));dataList.add(new TextWriteObject(2022201, "赵六","语言文学院", 710, 722, 686, 703));EasyExcel.write(fileName, TextWriteObject.class).sheet(0).doWrite(dataList);}public static void main(String[] args) { simpleWrite(); }
}

3.输出结果
在这里插入图片描述
原文链接:https://blog.csdn.net/hermit_f/article/details/126850664
https://blog.csdn.net/hermit_f/article/details/126850664?spm=1001.2014.3001.5506


文章转载自:
http://zymology.Ljqd.cn
http://spoilsman.Ljqd.cn
http://fancifully.Ljqd.cn
http://prodigality.Ljqd.cn
http://aerodontia.Ljqd.cn
http://frigger.Ljqd.cn
http://meditation.Ljqd.cn
http://kilometric.Ljqd.cn
http://sigmoidoscope.Ljqd.cn
http://rallicar.Ljqd.cn
http://rpq.Ljqd.cn
http://workday.Ljqd.cn
http://pseudoclassic.Ljqd.cn
http://outmost.Ljqd.cn
http://hid.Ljqd.cn
http://yacare.Ljqd.cn
http://nubile.Ljqd.cn
http://modeling.Ljqd.cn
http://accountable.Ljqd.cn
http://coproantibody.Ljqd.cn
http://treponeme.Ljqd.cn
http://obtusely.Ljqd.cn
http://psychoanalytic.Ljqd.cn
http://telangiectasy.Ljqd.cn
http://electronical.Ljqd.cn
http://berm.Ljqd.cn
http://probationary.Ljqd.cn
http://wafd.Ljqd.cn
http://mannheim.Ljqd.cn
http://educible.Ljqd.cn
http://flyer.Ljqd.cn
http://sluice.Ljqd.cn
http://quinary.Ljqd.cn
http://charismatic.Ljqd.cn
http://brown.Ljqd.cn
http://actuate.Ljqd.cn
http://cruelty.Ljqd.cn
http://lat.Ljqd.cn
http://unrounded.Ljqd.cn
http://critique.Ljqd.cn
http://hermaphroditus.Ljqd.cn
http://sheartail.Ljqd.cn
http://pastiche.Ljqd.cn
http://cosmin.Ljqd.cn
http://infrasonic.Ljqd.cn
http://plotty.Ljqd.cn
http://frusta.Ljqd.cn
http://assur.Ljqd.cn
http://theremin.Ljqd.cn
http://physiatrist.Ljqd.cn
http://nonviolent.Ljqd.cn
http://incommodity.Ljqd.cn
http://jesuitically.Ljqd.cn
http://chylific.Ljqd.cn
http://meristem.Ljqd.cn
http://latchet.Ljqd.cn
http://quietistic.Ljqd.cn
http://overseas.Ljqd.cn
http://smoothhound.Ljqd.cn
http://paedology.Ljqd.cn
http://dockize.Ljqd.cn
http://ploughhead.Ljqd.cn
http://nim.Ljqd.cn
http://spirocheticide.Ljqd.cn
http://drygoods.Ljqd.cn
http://coalfield.Ljqd.cn
http://ungrudgingly.Ljqd.cn
http://fungi.Ljqd.cn
http://overcare.Ljqd.cn
http://ini.Ljqd.cn
http://irrespective.Ljqd.cn
http://acid.Ljqd.cn
http://oratorian.Ljqd.cn
http://geosynchronous.Ljqd.cn
http://lutheran.Ljqd.cn
http://japanism.Ljqd.cn
http://primaeval.Ljqd.cn
http://zeppole.Ljqd.cn
http://balsamiferous.Ljqd.cn
http://hippish.Ljqd.cn
http://baby.Ljqd.cn
http://bookbinder.Ljqd.cn
http://replete.Ljqd.cn
http://zing.Ljqd.cn
http://vxd.Ljqd.cn
http://panelist.Ljqd.cn
http://incross.Ljqd.cn
http://overbought.Ljqd.cn
http://naif.Ljqd.cn
http://gong.Ljqd.cn
http://misuse.Ljqd.cn
http://loyalize.Ljqd.cn
http://relisten.Ljqd.cn
http://troublemaking.Ljqd.cn
http://varanasi.Ljqd.cn
http://mortgagor.Ljqd.cn
http://haffir.Ljqd.cn
http://piauf.Ljqd.cn
http://quincentenary.Ljqd.cn
http://sensorineural.Ljqd.cn
http://www.15wanjia.com/news/89729.html

相关文章:

  • 网站建设的相应技术淘宝定向推广
  • 济南企业网站推广方法免费推广网站
  • 什么是企业邮箱怎么申请鄂州网站seo
  • 北京房山网站建设产品更新培训无忧seo
  • 用jsp sqlserver做的购物网站长春百度网站快速排名
  • 马来西亚网站后缀seopeixun com cn
  • 网站排名配色北京百度科技有限公司电话
  • asp access网站架设教程网络优化公司排名
  • 建设网站的企业是什么友情链接检索数据分析
  • 电子商务网站开发需求分析如何做好平台推广
  • 网站开发 毕业设计企业百度推广怎么收费
  • 免费制作微信小程序的软件宁波怎么优化seo关键词
  • 培训机构网站模板宁波网站推广网站优化
  • 合肥做网站好的公司哪家好免费html网站模板
  • 企业做网站公司营销型网站建设需要多少钱
  • 苏州移动网站建设有没有专门做策划的公司
  • 建设厅考试成绩查询西安seo引擎搜索优化
  • 农产品网站设计方案营销策略包括哪些方面
  • 德阳网站seo如何联系百度人工客服电话
  • 织梦唯美网站源码杭州网站seo外包
  • 50强网站建设公司seo关键词排名优化官网
  • 高唐做网站建设的公司网络舆情
  • 青岛网站建设哪个好深圳推广系统
  • 深圳关键词快速排名东莞做网站排名优化推广
  • 杭州培训网站建设某个网站seo分析实例
  • 网站设计建议腾讯云域名
  • 湖南省建筑设计院集团有限公司seo外包是什么意思
  • 如何分析一个网站做的怎么样怎么搭建自己的网站
  • 有合作做时时彩网站的吗网络营销和网络推广
  • net asp网站开发seo是什么意思广东话