当前位置: 首页 > 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.pierceye.com/news/339454/

相关文章:

  • 网站做国际化网站服务器及运营维护公告
  • 潍坊网站开发招聘信息只做乡村旅游的网站
  • 什么网站可以做二建的题目汕尾网站网站建设
  • 如何用wampp 做网站网店seo
  • 新乡企业网站建设公司长安网站建设多少钱
  • 九亭镇村镇建设办官方网站工作简历模板电子版免费
  • 有保障的无锡网站制作wordpress怎么映射到外网访问不了
  • 邯郸网站设计怎么做移动网站 用户体验
  • 实验报告网站建设与网页制作oa系统是什么
  • 信息发布网站开发模板提高网站响应速度
  • 本科网站开发毕业设计贵阳平台网站建设
  • 安徽省建设厅网站打不开杭州建设网 执法人员名单
  • 外贸网站建站公司如何做滴滴网站平台
  • 淄博张店做网站的公司建筑设计公司资质等级
  • 一个网站的建设需要哪些流程图eclipse的开发网站开发
  • 网站链接跳转怎么做建立数据库连接时出错wordpress
  • 漳州网站建设选博大不错江苏省建设工程注册中心网站
  • 文件下载网站源码免费做网站空间
  • 怎样给公司做一个网站做推广新网域名管理平台
  • 新蔡县做网站收多少钱二级分销利润分配模式
  • 鞍山百度网站怎么制作python培训视频教程
  • 湛江网站建设与网页网站建设需要什么证件
  • 东莞建站公司案例全网天下案例wordpress入门教程知乎
  • 网站策划书包含的内容化工设计网站
  • 做网站推广电话网站建设制作免费推广
  • 如何发布网站响应式商城网站
  • 网站建设应用程序开发网站建设的意义以及重要性
  • 网站建设进度说明嘉兴公司制作网站的
  • 山东省建设注册管理网站手机免费网站制作
  • 台州网站制作套餐如何查询网站的主机