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

最全的提交网站入口大全企业网站排名提升软件能优化

最全的提交网站入口大全,企业网站排名提升软件能优化,文山专业网站建设,装修设计效果图大全免费1、背景介绍 项目中需要导出数据质检结果#xff0c;本来使用Excel#xff0c;但是质检结果数据行数过多#xff0c;导致用hutool报错#xff0c;因此转为导出csv格式数据。 2、参考文档 https://blog.csdn.net/ityqing/article/details/127879556 工程环境#xff1a;…1、背景介绍 项目中需要导出数据质检结果本来使用Excel但是质检结果数据行数过多导致用hutool报错因此转为导出csv格式数据。 2、参考文档 https://blog.csdn.net/ityqing/article/details/127879556 工程环境springboot 2.2.x 3、实现 controller ApiOperation(导出质检结果csv)GetMapping(/export/csv/{datasetId})public void exportCsv( PathVariable String datasetId,HttpServletResponse response) {CheckDataParamVO checkDataParamVO new CheckDataParamVO();checkDataParamVO.setDatasetId(datasetId);checkDataService.exportCsv(checkDataParamVO, response);}service /*** 导出csv格式质检结果** param checkDataVO* param response*/Overridepublic void exportCsv(CheckDataParamVO checkDataVO, HttpServletResponse response) {ListCheckResultVO res getCheckResultAll(checkDataVO);String fileName 质检结果表 DateTime.now().getTime();writeCsv(response, fileName, res);}/*** CSV文件列分隔符*/private static final String CSV_COLUMN_SEPARATOR ,;/*** CSV文件行分隔符*/private static final String CSV_ROW_SEPARATOR System.lineSeparator();private static final ListString titleName Arrays.asList(序号, 异常类型, 图层名, 要素主键);/*** param response 响应流* param fileName 文件名称* param dataList 数据源*/private void writeCsv(HttpServletResponse response, String fileName, ListCheckResultVO dataList) {OutputStream out null;try {StringBuffer buf new StringBuffer();out response.getOutputStream();String lastFileName fileName .csv;response.setContentType(application/msexcel;charsetUTF-8);response.setHeader(Content-Disposition, attachment; filename URLEncoder.encode(lastFileName, UTF-8));// 组装表头for (String title : titleName) {buf.append(title).append(CSV_COLUMN_SEPARATOR);}buf.append(CSV_ROW_SEPARATOR);//组装行数据dataList.forEach(data - {buf.append(Optional.ofNullable(data.getSid()).orElse(0)).append(CSV_COLUMN_SEPARATOR);buf.append(Optional.ofNullable(data.getCheckType()).orElse()).append(CSV_COLUMN_SEPARATOR);buf.append(Optional.ofNullable(data.getSubname()).orElse()).append(CSV_COLUMN_SEPARATOR);buf.append(Optional.ofNullable(data.getFid()).orElse()).append(CSV_COLUMN_SEPARATOR);buf.append(CSV_ROW_SEPARATOR);});//添加bom不加Excel打开中文会乱码out.write(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});out.write(buf.toString().getBytes(UTF-8));} catch (Exception e) {log.error(导出CSV异常, e);} finally {if (out ! null) {try {out.flush();out.close();} catch (IOException e) {log.error(导出CSV异常, e);}}}}4、测试结果 可用 5、总结 以上是不使用第三方组件实现导出csv文件。测试成功。 6、补充 参考文章 https://blog.csdn.net/ityqing/article/details/127879556 6.1、bug 提到了一个中文乱码的bug Excel 在读取 csv 的时候是通过读取文件头上的 bom 来识别编码的这导致如果我们生成 csv 文件的平台输出无 bom 头编码的 csv 文件例如 utf-8 在标准中默认是可以没有 bom 头的Excel 只能自动按照默认编码读取不一致就会出现乱码问题了。 6.2、解决 写入的时候加上 out.write(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF }); 6.3、其他方式 参考文章用了两种方法另一种是引入第三方组件CSVWriter pom.xml文件增加依赖 dependencygroupIdcom.opencsv/groupIdartifactIdopencsv/artifactIdversion5.5.2/version /dependencyjava代码如下自己没测。只是抄过来 /** * param response 响应流 * param fileName 文件名称 * param dataList 数据源 */ private void writeCsv2(HttpServletResponse response, String fileName, ListTaskAplusExpire dataList) {String lastFileName fileName .csv;response.setContentType(application/msexcel;charsetUTF-8);try {response.setHeader(Content-Disposition, attachment; filename URLEncoder.encode(lastFileName, UTF-8));PrintWriter out response.getWriter();// 手动加上BOM标识out.write(new String(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF }));// 设置显示的顺序,数据源对象属性列表String[] columnMapping { pmid, phone, sendDate, code, message };ColumnPositionMappingStrategyTaskAplusExpire mapper new ColumnPositionMappingStrategyTaskAplusExpire();//数据源类型mapper.setType(TaskAplusExpire.class);mapper.setColumnMapping(columnMapping);// 写表头CSVWriter csvWriter new CSVWriter(response.getWriter(), CSVWriter.DEFAULT_SEPARATOR,CSVWriter.NO_QUOTE_CHARACTER);String[] header { Pmid,Phone,Send Date,Code,Message};csvWriter.writeNext(header);StatefulBeanToCsv beanToCsv new StatefulBeanToCsvBuilder(out).withMappingStrategy(mapper).withQuotechar(CSVWriter.NO_QUOTE_CHARACTER).withSeparator(CSVWriter.DEFAULT_SEPARATOR).withEscapechar(\\).build();beanToCsv.write(dataList);csvWriter.close();out.close();} catch (IOException e) {e.printStackTrace();}catch (CsvDataTypeMismatchException e) {e.printStackTrace();} catch (CsvRequiredFieldEmptyException e) {e.printStackTrace();}
http://www.yutouwan.com/news/309321/

相关文章:

  • 东莞网站排名优化seo龙岩平面设计
  • 赤峰北京网站建设小程序代理模板
  • 临清做网站推广wordpress应
  • 制作一个网站数据库怎么做wordpress三栏博客主题
  • 手机网站jquery底部导航菜单注册深圳公司
  • 江苏省句容建设局网站建筑公司组织架构
  • 站长工具seo查询软件wordpress 多站点开启
  • 苏州建站网站模板网站图片链接到视频怎么做
  • 宁波网站开发建设公司网站被k是什么表现
  • 网站开发用哪些字体wordpress最好最全的教程
  • 网站制作销售术语网站前端需要会什么
  • 高端网站定制设计公司phpcms 多语言网站
  • 企业网站外包成都最好的网站建设公司
  • 行业网站建设蓝云wordpress 自定义rss
  • 深圳网站关键词排名优化上海网络推广培训
  • 青岛网站公司wordpress和hugo
  • 个人简历 网站开发建筑网库
  • 查询网站入口弄个做网站公司
  • 哪个网站可以做360度评估网站建设方案网站安全
  • 用asp.net制作一个网站需要多久织梦做的网站如何修改
  • 如何进行网站开发青岛城市建设档案馆网站
  • 网站建设自身优势的分析自主建站网站
  • 接手一个新的网站应该怎样做专注营销型网站建设公司 做网站
  • 怎么在网站后面制作官网俩个字网站开发实例百度云
  • 临安网站开发外贸页面网站制作
  • 免费下载app软件网站主持人做的化妆品网站
  • 网站怎么优化到首页如何注册自己的wordpress
  • 关于网站建设的调查问卷wordpress页面的模板
  • 偃师网站六安市网站制作
  • 做网站都需要哪些信息设计公司logo软件