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

代理网站推荐搜索关键词排名优化

代理网站推荐,搜索关键词排名优化,wordpress 加上index,上海嘉定网站情况一:简单的导出指定类型文档,不要求格式 filePath-文件路径// 设置响应头response.setContentType("application/octet-stream");// 字符集处理,确保文件名的正确显示response.setHeader("Content-Disposition","…

情况一:简单的导出指定类型文档,不要求格式

    filePath-文件路径// 设置响应头response.setContentType("application/octet-stream");// 字符集处理,确保文件名的正确显示response.setHeader("Content-Disposition","attachment;filename=" + new String(filename.getBytes()));// 读取文件内容并写入到响应输出流中Path filePath = Paths.get(filePath);try {Files.copy(filePath, response.getOutputStream());} catch (IOException e) {throw new BizException("文件导出失败");}

情况二:将各种命令格式(混乱)的数据导入到excel,这种情况需要注意视觉效果

为避免所有数据输出到一行,可新建一个集合,每一行放入一个新的List

         List<String> row = new ArrayList<>();row.add(s); // 将每一行放入一个新的 List 中coms.add(row);

如果你输出的数据呈块状,这一块是输入这个命令,下边又是属于另外的命令,就考虑分隔开了,这里加了换行符

if (execCom.contains("\n")) {String[] split = execCom.split("\n");for (String s : split) {List<String> row = new ArrayList<>();row.add(s); // 将每一行放入一个新的 List 中coms.add(row);}}coms.add(Collections.singletonList("\n"));//用于不同命令之间的分隔coms.add(Collections.singletonList("\n"));

输出的时候可指定sheet,定义本列格式

try {EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())//列宽度自适应.sheet("sheet1").doWrite(coms);} catch (Exception e) {log.info("文件导出失败: {}", e.getMessage());throw new BizException("文件导出失败。");}

情况三:将指定数据按类型导出到一个excel文件的不同的sheet,这里一个类型可能包含多个不同的物品,每个物品都有对应的信息

1)准备数据
将数据按类型保存到集合,再写入文件,这里注意同一类型的数据保存同一个物品的所有信息,不然达不到效果

Map<String, Map<String, List<List<String>>>> data = new HashMap<>();if (CollectionUtils.isNotEmpty(list)) {Map<String,List<YourClass>> map = list.stream().collect(Collectors.groupingBy(YourClass::getType));map.forEach((k,v)->{Map<String, List<List<String>>> deData = new HashMap<>();for (YourClass de : v) {List<InfoVo> infoVoList = previewTemplate(de.getId());List<List<String>> coms = new ArrayList<>();infoVoList.forEach(template -> {String execCom = template.getExecCommand();if (execCom.contains("\n")) {String[] split = execCom.split("\n");for (String s : split) {List<String> row = new ArrayList<>();row.add(s); // 将每一行放入一个新的 List 中coms.add(row);}}coms.add(Collections.singletonList("\n"));coms.add(Collections.singletonList("\n"));deData.put(de.getType(), coms);});}data.put(k, deData);});}

2)创建对象

ExcelWriter writer = EasyExcel.write(outputStream).build();//可用于导出大量数据,效率高

3)遍历角色数据

// 遍历每个角色的数据for (Map.Entry<String, Map<String, List<List<String>>>> roleEntry : roleDeviceData.entrySet()) {String role = roleEntry.getKey();Map<String, List<List<String>>> devices = roleEntry.getValue();// 创建一个新的Sheet页WriteSheet writeSheet = EasyExcel.writerSheet(role).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();// 准备要写入的数据List<List<String>> dataToWrite = new ArrayList<>();int maxRowCount = devices.values().stream().mapToInt(List::size).max().orElse(0);for (int i = 0; i < maxRowCount; i++) {List<String> row = new ArrayList<>();for (List<List<String>> deviceData : devices.values()) {if (i < deviceData.size()) {row.addAll(deviceData.get(i));} else {row.add("\n"); // 如果当前行没有数据,填充空字符串}}dataToWrite.add(row);}

4)写入数据

try {writer.write(dataToWrite,writeSheet);} catch (Exception e) {log.info("写入数据到Sheet页 {}", e.getMessage());}

5)导出文件,关闭输出流

writer.finish();try {outputStream.flush();outputStream.close();} catch (IOException e) {throw new RuntimeException(e);}

情况四:导出数据到指定格式文件(比如上边是不分列的文字,中间是标题,下边是对应数据格式)

此时可通过定义不同集合再合并的形式达到效果。

// 创建一个List集合来存储前几行备注信息List<String> headList = new ArrayList<>();headList.add("#以“#”开头的行是注释行。");
List<List<String>> headRow = new ArrayList<>();// 写入数据到Excelfor (String line : headList) {headRow.add(Arrays.asList(line));}
//创建标题行集合
List<List<String>> titleRow = new ArrayList<>();titleRow.add(Arrays.asList("#*名称",“对象”,“类型”));
//定义数据集合
List<List<String>> dataRow = new ArrayList<>();
并存放相应数据,可在数据遍历时定义一维集合达到分行目的

集合合并

//集合合并
List<List<String>> all = new ArrayList<>();all.addAll(headRow);all.addAll(titleRow);all.addAll(dataRow);
try {//写出数据到浏览器端EasyExcel.write(response.getOutputStream()).sheet("sheet1").doWrite(all);} catch (Exception e) {throw new BizException(String.format("sheet1:%s", e.getMessage()));}
http://www.yayakq.cn/news/416410/

相关文章:

  • 服务哪家好中医小程序定制seo基础知识考试
  • 做网站的用处越秀定制型网站建设
  • 襄阳住房和城乡建设局网站首页找人做网站被骗怎么办
  • 域名和网站济南优化网站
  • 中建八局第一建设公司网站便宜购物网站大全
  • 企业门户网站开发任务书游戏小程序开发定制
  • 响应式网站 手机版企业网站html5
  • 公司建设网站的优势绍兴seo网站推广
  • 江门网站设计素材爱做网站
  • 东圃手机网站制作费用网站做好第二年要多少钱
  • 寻找扬中网站建设一个电商网站开发需要多久
  • 怎么做网站优化排名上海做网站服务商
  • 专注律师微信网站建设网页制作是干什么的
  • 招聘网站收费标准对比图怎么做网站搭建谷歌seo
  • 江门外贸网站推广方案北京中信建设有限责任公司
  • 嘉兴模板建站系统网络推广的常用方法
  • 网站建设实验分析创新创意产品设计方案
  • 运城建设银行网站点好的模板网站
  • 宿迁哪家做网站推广wordpress 电商小程序
  • 苏州新公司网站建设沈阳模板建站系统
  • 河南国控建设集团招标网站万维网网站301重定向怎么做
  • 深圳响应式设计企业网站淄博网站建设网站推广优化
  • 广州网站制作怎样网络营销的基本特点
  • 网站模板助手网站排名优化技术
  • 免费中文网站模板成都公众号小程序开发
  • 网站建设 500强建站网络架构师工资一般多少
  • 做搜狗网站点击公司网站购买主机
  • 以前的网站忘了怎么办啊深圳网站建设知名公司
  • 企业网站建设的意义和效果做网站需要哪些成本
  • shopify做国内网站windows装wordpress