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

云南制作网站的公司设计公司logo大概需要多少钱

云南制作网站的公司,设计公司logo大概需要多少钱,使用html作为wordpress登录,wordpress 文章图片自动添加图片背景 系统中经常要导出大量的数据#xff0c;格式基本上都是Excel#xff0c;然而每次导表都是对系统内存的一次挑战。在Java领域#xff0c;生成或解析Excel的框架比较有名的当属Apache的poi和jxl了。但使用它们#xff0c;会面临着严重的内存损耗问题。如果系统的并发量还… 背景 系统中经常要导出大量的数据格式基本上都是Excel然而每次导表都是对系统内存的一次挑战。在Java领域生成或解析Excel的框架比较有名的当属Apache的poi和jxl了。但使用它们会面临着严重的内存损耗问题。如果系统的并发量还不行一旦导出大量数据便会出现JVM频繁full gc甚至导致OOM。EasyExcel是阿里巴巴开源的一个Excel处理框架使用简单、节省内存。节省内存的原理也很简单在解析Excel时没有将文件数据全部加载到内存当中而是从磁盘文件中一行行读取。今天这篇文章就带大家来了解一下EasyExcel的使用个人使用后的感慨是太简单易用了。项目构建及依赖 首先创建一个Maven项目在pom文件中添加如下依赖dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion2.2.8/version /dependency当引入该依赖之后会发现在项目的依赖文件中同时多出了poi的类库。也就是说EasyExcel是基于poi来进行实现的间接地引入了如下依赖dependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion3.17/version /dependency dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion3.17/version /dependency所以当你的项目中已经引入了poi的依赖要考虑一下版本的兼容问题。创建实体类 EasyExcel易用性的体现之一就是可以通过在实体类中使用注解的形式来与Excel中的表头进行绑定。现在直接上实体类Data public class UserData {ExcelProperty(index  0, value  姓名)private String username;ExcelProperty(index  1, value  年龄)private int age;DateTimeFormat(yyyy-MM-dd)ExcelProperty(index  2, value  生日)private Date birthday; }在上面的实体类中Data为Lombok的注解当然你可以自行生成getter/setter方法其他的注解均为EasyExcel提供的ExcelProperty用于设置Excel表头其中index用户表头的编号从0开始value为表头对应的内容。DateTimeFormat用于日期的格式化。完成上述功能准备工作之后我们先来生成一个Excel。生成Excel 下面直接展示生成Excel的示例代码public class EasyExcelDemo {public static void main(String[] args) {// 实现excel写操作//1.设置写入文件夹地址和excel文件名称String fileName  /Users/zzs/temp/excel/write.xlsx;//调用easyExcel里面的方法实现写操作//2个参数第一个参数是文件名称第二个参数是实体类EasyExcel.write(fileName, UserData.class).sheet(学生信息表).doWrite(getData());}//创建方法返回list集合public static ListUserData getData() {ListUserData list  new ArrayList();UserData userData1  new UserData();userData1.setUsername(张三);userData1.setAge(22);userData1.setBirthday(formatDate(2000-10-11));list.add(userData1);UserData userData2  new UserData();userData2.setUsername(李四);userData2.setAge(23);userData2.setBirthday(formatDate(1999-5-3));list.add(userData2);return list;}public static Date formatDate(String birthday) {SimpleDateFormat sdf  new SimpleDateFormat(yyy-MM-dd);try {return sdf.parse(birthday);} catch (ParseException e) {e.printStackTrace();}return null;} }除了准备数据的代码核心代码只有main方法中调用的EasyExcel.write方法就是如此的简单。EasyExcel的write方法会根据传入的数据和实体类UserData进行绑定生成Excel文件。我们来看一下Excel的效果write-excel生成效果还不错而且使用起来是不是非常简单解析Excel 再来看看解析Excel的操作直接用上面生成的Excel文件。首先创建一个监听器ExcelListener集成EasyExcel提供AnalysisEventListener类public class ExcelListener extends AnalysisEventListenerUserData {/*** 一行一行的读取excel内容*/Overridepublic void invoke(UserData data, AnalysisContext analysisContext) {System.out.println(****  data);}/*** 读取表头内容*/Overridepublic void invokeHeadMap(MapInteger, String headMap, AnalysisContext context) {System.out.println(表头  headMap);}/*** 读取完成操作*/Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {System.out.println(读取Excel完毕);} }在该监听器中通过重写AnalysisEventListener的方法来获得解析的数据、表头信息以及解析完毕之后执行的操作信息。同样写Excel一样通过EasyExcel类的静态方法来执行读操作public class EasyExcelReadDemo {public static void main(String[] args) {// 实现excel写操作//1.设置写入文件夹地址和excel文件名称String fileName  /Users/zzs/temp/excel/write.xlsx;//调用easyExcel里面的方法实现写操作//2个参数第一个参数是文件名称第二个参数是实体类EasyExcel.read(fileName, UserData.class, new ExcelListener()).sheet().doRead();} }执行上述方法打印信息如下表头{0姓名, 1年龄, 2生日} ****UserData(username张三, age22, birthdayWed Oct 11 00:00:00 CST 2000) ****UserData(username李四, age23, birthdayMon May 03 00:00:00 CST 1999) 读取Excel完毕最先是打印了表头信息这里也可以看到表头的排序是从0开始的。然后读取并打印了对应的Excel内容两条数据最后执行读取完的方法中的日志打印。看完了上面的整个操作解析Excel是不是变得非常简单了再也不为解析Excel犯愁了。其他相关特殊用法 上面提到的DateTimeFormat注解可转换日期格式还有其他类似功能的注解和自定义转换器。自定义转换器通过自定义转换器比如将1、0转换成男、女的实例import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.property.ExcelContentProperty;public class SexConverter implements ConverterInteger {Overridepublic ClassInteger supportJavaTypeKey() {return Integer.class;}Overridepublic CellDataTypeEnum supportExcelTypeKey() {return CellDataTypeEnum.STRING;}Overridepublic Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {return 男.equals(cellData.getStringValue()) ? 1 : 0;}Overridepublic CellDataString convertToExcelData(Integer integer, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {return new CellData(integer.equals(1) ? 男 : 女);} }性别属性注入SexConverter转换器ExcelProperty(value  性别, converter  SexConverter.class) private Integer sex;再次生成Excel性别字段内容便显示为男、女字样。保留两位小数比如体重需要保留两位小数可通过NumberFormat 注解实现ExcelProperty(value  体重KG) NumberFormat(0.##) // 会以字符串形式生成单元格要计算的列不推荐 private BigDecimal weight;另外一种方法是使用ContentStyle注解ContentStyle(dataFormat  2) private BigDecimal weight2;这样也能达到保留两位小数的效果。当然也可以使用实现Converter接口的方式实现同性别实现。排除指定Excel列在很多场景下Excel的列与实体类可能并不完全一致这时就需要排除一些实体类的字段。方式一类上加注解 ExcelIgnoreUnannotated过滤属性没有ExcelProperty注解的字段Data ToString AllArgsConstructor NoArgsConstructor  // 一定要有无参构造方法 ExcelIgnoreUnannotated public class UserData {..... }方式二指定字段加ExcelIgnore注解ExcelIgnore // 该字段不生成excel private String remark;方式三代码指定过滤字段通过excludeColumnFiledNames方法EasyExcel.write(fileName, UserData.class).sheet(学生信息表).excludeColumnFiledNames(Arrays.asList(remark)).doWrite(getData());这种方法的好处是同一Excel可以在调用方法时排除不同的数据列。小结 本文介绍了EasyExcel的使用整体而言操作简单、使用方便提供了不少注解方便与实体对象之间的关系绑定。而且官网也提供了相关的性能数据更多的API使用大家还可以继续探索。无论从性能或易用性上来说都值得你尝试。特别是临时写一个Excel的解析或生成的工具再也不用惆怅一行行的解析了赶紧收藏用起来吧。往期推荐实战10 种实现延迟任务的方法附代码最简单的6种防止数据重复提交的方法(干货)Spring Cloud OpenFeign 的 5 个优化小技巧
http://www.yutouwan.com/news/66790/

相关文章:

  • 绍兴专业做网站企业咨询合同
  • 网站建设感想招商局网站建设方案
  • 做网站平面一套多少钱苏州新区网站建设
  • dw如何用表格来做网站火车头采集器和wordpress
  • 电商网站开发的流程图wordpress洗发水主题
  • 南海做网站公司如何介绍设计的网站模板
  • 三水建设局招标网站做网站和app有什么区别
  • 试用网站要怎么做个人博客网页模板
  • 深圳做响应式网站制作网站制作案例图片
  • TP5企业网站开发教程百度云wordpress 支付宝
  • wordpress底部导航插件网站改版影响seo吗
  • 自己做网站的优势虫虫 wordpress 群发
  • 大气金融投资企业网站模板最容易做的网站类型
  • 网站刷单账务处理怎么做杭州专业网站排名优化
  • 多城市网站建设网站制作公司排名
  • 网站建设宣传ppt模板公司网站的好处
  • 做ppt网站有哪些内容吗wordpress怎么把图片存七牛
  • 环境文化建设方案网站地和网站建设
  • 做破解网站合法互联网络
  • 建设部网站查询造价师证件网页的源代码的开始和结束标签必须是
  • 1.网站建设基本流程是什么荣耀手机商城官方网站售后
  • 如何做网络投票网站苏州网络公司策划
  • 品牌做网站怎样做艾条艾柱网站
  • 网站后台维护主要做什么怎么做游戏网站的宣传图片
  • ps网站专题怎么做网页制作详细设计
  • 杭州有哪些做网站的公司网页设计基础介绍
  • 温州网站优化页面最超值的锦州网站建设
  • 免费网站引导页最优秀的无锡网站建设
  • 杏坛餐饮网站建站app研发过程
  • 模拟登录wordpress c长沙网站推广seo