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

湖北专业网站制作公司wordpress定时器

湖北专业网站制作公司,wordpress定时器,建材 团购 网站怎么做,做网站推广销售原文#xff1a;https://www.jianshu.com/p/5d67fb720ece 开发中经常会遇到excel的处理#xff0c;导入导出解析等等#xff0c;java中比较流行的用poi#xff0c;但是每次都要写大段工具类来搞定这事儿#xff0c;此处推荐一个别人造好的轮子【easypoi】#xff0c;下面…原文https://www.jianshu.com/p/5d67fb720ece     开发中经常会遇到excel的处理导入导出解析等等java中比较流行的用poi但是每次都要写大段工具类来搞定这事儿此处推荐一个别人造好的轮子【easypoi】下面介绍下“轮子”的使用。pom引入 不再需要其他jar dependencygroupIdcn.afterturn/groupId artifactIdeasypoi-base/artifactId version3.0.3/version /dependency dependency groupIdcn.afterturn/groupId artifactIdeasypoi-web/artifactId version3.0.3/version /dependency dependency groupIdcn.afterturn/groupId artifactIdeasypoi-annotation/artifactId version3.0.3/version /dependency 编写实体类 此处注意必须要有空构造函数否则会报错“对象创建错误”关于注解Excel其他还有ExcelCollectionExcelEntity ExcelIgnoreExcelTarget等此处我们用不到可以去官方查看更多属性类型类型说明nameStringnull列名needMergebooleanfasle纵向合并单元格orderNumString0列的排序,支持name_idreplaceString[]{}值得替换 导出是{a_id,b_id} 导入反过来savePathStringupload导入文件保存路径typeint1导出类型 1 是文本 2 是图片,3 是函数,10 是数字 默认是文本widthdouble10列宽heightdouble10列高,后期打算统一使用ExcelTarget的height,这个会被废弃,注意isStatisticsbooleanfasle自动统计数据,在追加一行统计,把所有数据都和输出这个处理会吞没异常,请注意这一点isHyperlinkbooleanfalse超链接,如果是需要实现接口返回对象isImportFieldbooleantrue校验字段,看看这个字段是不是导入的Excel中有,如果没有说明是错误的Excel,读取失败,支持name_idexportFormatString导出的时间格式,以这个是否为空来判断是否需要格式化日期importFormatString导入的时间格式,以这个是否为空来判断是否需要格式化日期formatString时间格式,相当于同时设置了exportFormat 和 importFormatdatabaseFormatStringyyyyMMddHHmmss导出时间设置,如果字段是Date类型则不需要设置 数据库如果是string 类型,这个需要设置这个数据库格式,用以转换时间格式输出numFormatString数字格式化,参数是Pattern,使用的对象是DecimalFormatimageTypeint1导出类型 1 从file读取 2 是从数据库中读取 默认是文件 同样导入也是一样的suffixString文字后缀,如% 90 变成90%isWrapbooleantrue是否换行 即支持\nmergeRelyint[]{}合并单元格依赖关系,比如第二列合并是基于第一列 则{1}就可以了mergeVerticalbooleanfasle纵向合并内容相同的单元格import cn.afterturn.easypoi.excel.annotation.Excel;import java.util.Date;public class Person { Excel(name 姓名, orderNum 0) private String name; Excel(name 性别, replace {男_1, 女_2}, orderNum 1) private String sex; Excel(name 生日, exportFormat yyyy-MM-dd, orderNum 2) private Date birthday; public Person(String name, String sex, Date birthday) { this.name name; this.sex sex; this.birthday birthday; } public String getName() { return name; } public void setName(String name) { this.name name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday birthday; } } 导入导出公用方法 public static void exportExcel(List? list, String title, String sheetName, Class? pojoClass,String fileName,boolean isCreateHeader, HttpServletResponse response){ ExportParams exportParams new ExportParams(title, sheetName); exportParams.setCreateHeadRows(isCreateHeader); defaultExport(list, pojoClass, fileName, response, exportParams); } public static void exportExcel(List? list, String title, String sheetName, Class? pojoClass,String fileName, HttpServletResponse response){ defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName)); } public static void exportExcel(ListMapString, Object list, String fileName, HttpServletResponse response){ defaultExport(list, fileName, response); } private static void defaultExport(List? list, Class? pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) { Workbook workbook ExcelExportUtil.exportExcel(exportParams,pojoClass,list); if (workbook ! null); downLoadExcel(fileName, response, workbook); } private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) { try { response.setCharacterEncoding(UTF-8); response.setHeader(content-Type, application/vnd.ms-excel); response.setHeader(Content-Disposition, attachment;filename URLEncoder.encode(fileName, UTF-8)); workbook.write(response.getOutputStream()); } catch (IOException e) { throw new NormalException(e.getMessage()); } } private static void defaultExport(ListMapString, Object list, String fileName, HttpServletResponse response) { Workbook workbook ExcelExportUtil.exportExcel(list, ExcelType.HSSF); if (workbook ! null); downLoadExcel(fileName, response, workbook); } public static T ListT importExcel(String filePath,Integer titleRows,Integer headerRows, ClassT pojoClass){ if (StringUtils.isBlank(filePath)){ return null; } ImportParams params new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); ListT list null; try { list ExcelImportUtil.importExcel(new File(filePath), pojoClass, params); }catch (NoSuchElementException e){ throw new NormalException(模板不能为空); } catch (Exception e) { e.printStackTrace(); throw new NormalException(e.getMessage()); } return list; } public static T ListT importExcel(MultipartFile file, Integer titleRows, Integer headerRows, ClassT pojoClass){ if (file null){ return null; } ImportParams params new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); ListT list null; try { list ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params); }catch (NoSuchElementException e){ throw new NormalException(excel文件不能为空); } catch (Exception e) { throw new NormalException(e.getMessage()); } return list; } 对的没看错这就可以导出导入了,看起来代码挺多其实是提供了多个导入导出方法而已 测试 RequestMapping(export)public void export(HttpServletResponse response){ //模拟从数据库获取需要导出的数据 ListPerson personList new ArrayList(); Person person1 new Person(路飞,1,new Date()); Person person2 new Person(娜美,2, DateUtils.addDate(new Date(),3)); Person person3 new Person(索隆,1, DateUtils.addDate(new Date(),10)); Person person4 new Person(小狸猫,1, DateUtils.addDate(new Date(),-10)); personList.add(person1); personList.add(person2); personList.add(person3); personList.add(person4); //导出操作 FileUtil.exportExcel(personList,花名册,草帽一伙,Person.class,海贼王.xls,response); } RequestMapping(importExcel) public void importExcel(){ String filePath F:\\海贼王.xls; //解析excel ListPerson personList FileUtil.importExcel(filePath,1,1,Person.class); //也可以使用MultipartFile,使用 FileUtil.importExcel(MultipartFile file, Integer titleRows, Integer headerRows, ClassT pojoClass)导入 System.out.println(导入数据一共【personList.size()】行); //TODO 保存数据库 } 导出结果 导出结果 测试导入 导出结果再添加一行执行输出导入数据行数 作者小尘哥链接https://www.jianshu.com/p/5d67fb720ece來源简书简书著作权归作者所有任何形式的转载都请联系作者获得授权并注明出处。
http://www.zqtcl.cn/news/347155/

相关文章:

  • 阿里云网站建设方案书怎么写四川做网站公司哪家好
  • 提供衡水网站建设wordpress游客看小图登陆查看大图
  • 网站开发优势wordpress 密码破解
  • 做网站空间需要多大深圳服装网站建设
  • 建网站wordpress制作app多少钱一个
  • 怎么做装修网站torrentkitty磁力猫
  • 网站建立站点wordpress手机网站模板制作
  • 宁夏建设工程招标投标信息网站教师做网站赚钱
  • 潍坊网站制作价格网站维护入门教程
  • 微信网站怎么做下载附件wordpress英文主题汉化
  • 桂平网站设计python基础教程第二版
  • wordpress hermit杭州企业seo网站优化
  • 贵州做团队培训的网站法学网站阵地建设
  • 网站死链是什么西宁高端网站开发公司
  • 做团购网站的公司wordpress附件存放位置
  • 成都最专业做网站的仿win8网站模板
  • 国外设计类网站男女做暖暖试看网站
  • 网站设计哪个好珠海微网站进入
  • 云主机开网站教程模板网会员
  • 网站建设无锡虚拟网站官网
  • 品牌网站设计联系东莞网站优化公
  • 自己做整个网站的流程php装修网站源码
  • 天津网站建设班模拟网站建设软件有哪些
  • 服务类的网站怎么做做软件的网站担保网站
  • 最新电子产品网站模板海口网站排名提升
  • 北京社保网站减员怎么做phpcms v9 实现网站搜索
  • 视频运营管理网站济南网站建设 济南货梯
  • html电影网站模板下载工具阿里云网站建设 部署与发布笔记
  • 建设跨境网站微信seo是什么意思
  • 我做彩票网站开发彩票网站搭建织梦如何仿手机网站源码下载