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

建设网站公司怎么分工seo快速排名软件案例

建设网站公司怎么分工,seo快速排名软件案例,党建设计方案哪个网站比较多,怎么做和美团一样的网站使用deepoove根据模板导出word文档&#xff0c;包括文本、表格、图表、图片&#xff0c;使用WordConvertPdf可将word文档转换为pdf导出 模板样例&#xff1a; 导出结果&#xff1a; 一、引入相关依赖 <!-- 工具类--><dependency><groupId>cn.hutool&…

使用deepoove根据模板导出word文档,包括文本、表格、图表、图片,使用WordConvertPdf可将word文档转换为pdf导出

模板样例:

导出结果:

一、引入相关依赖
        <!--        工具类--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency><!--        poi--><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.11.1</version></dependency><!--        word转pdf--><dependency><groupId>WordConvertPdf</groupId><artifactId>WordConvertPdf</artifactId><version>1.0</version></dependency>
二、创建导出数据实体类
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel(value = "ExportVO", description = "导出VO")
public class ExportVO {@ApiModelProperty(value = "标题")private String title;@ApiModelProperty(value = "名称")private String name;@ApiModelProperty(value = "数量")private Integer num;@ApiModelProperty(value = "集合数据")private List<ExportListVO> list;@ApiModelProperty(value = "表格")private List<ExportListVO> table;@ApiModelProperty(value = "柱状图")private ChartMultiSeriesRenderData barChart;@ApiModelProperty(value = "饼图")private ChartSingleSeriesRenderData pieChart;@ApiModelProperty(value = "折线图")private ChartMultiSeriesRenderData lineChart;@ApiModelProperty(value = "图片")private PictureRenderData img;}
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel(value = "ExportListVO", description = "导出集合VO")
public class ExportListVO {@ApiModelProperty(value = "类型")private String type;@ApiModelProperty(value = "数量")private Integer num;}

三、业务代码

 /*** 文档导出** @param fileType 导出文件类型:1-docx,2-pdf* @param response 响应流*/@Overridepublic void exportFile(Integer fileType, HttpServletResponse response) throws IOException {//模板地址,存放在resources目录下String filePath = "templates/word/test.docx";//使用poi-tl进行模板处理ConfigureBuilder builder = Configure.builder();builder.useSpringEL(true);//执行循环策略LoopRowTableRenderPolicy strategy = new LoopRowTableRenderPolicy();//绑定集合对象builder.bind("list", strategy);builder.bind("table", strategy);//获取模板文件流InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath);assert inputStream != null;//组装数据ExportVO data = this.createData();XWPFTemplate render = XWPFTemplate.compile(inputStream, builder.build()).render(data);// 设置强制下载不打开response.setContentType("application/force-download");response.addHeader("Access-Control-Expose-Headers", " Content-Disposition");if (fileType.equals(1)) {//如果需要导出为wordresponse.addHeader("Content-Disposition", "attachment; fileName=" + new String(("导出模板.docx").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));render.write(response.getOutputStream());} else if (fileType.equals(2)) {//如果需要导出为pdfresponse.addHeader("Content-Disposition", "attachment; fileName=" + new String(("导出模板.pdf").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());//设置临时文件的地址String tempPath = UUID.randomUUID() + ".docx";//根据模板生成临时文件render.writeToFile(tempPath);//将docx流转换为pdf流FileInputStream fileInputStream = new FileInputStream(tempPath);WordConvertPdf.getPdfStreamByWordStream(fileInputStream, outputStream);outputStream.flush();outputStream.close();fileInputStream.close();//删除临时文件File tempFile = new File(tempPath);Files.delete(tempFile.toPath());log.debug("删除临时word文件:{}", tempPath);}}

 需要注意的时,文档中需要循环的数必须绑定biulder

四、组装数据,createData方法
  private ExportVO createData() {ExportVO data = new ExportVO();//普通文本data.setTitle("食品统计");data.setName("蔬菜统计");data.setNum(60);//集合数据List<ExportListVO> list = new ArrayList<>();list.add(new ExportListVO("黄瓜", 10));list.add(new ExportListVO("茄子", 20));list.add(new ExportListVO("番茄", 30));//添加循环文本数据data.setList(list);//添加表格数据data.setTable(list);//添加柱状图数据ChartMultiSeriesRenderData barChart = new ChartMultiSeriesRenderData();barChart.setChartTitle("蔬菜统计柱状图");barChart.setCategories(list.stream().map(ExportListVO::getType).toArray(String[]::new));List<SeriesRenderData> barChartSeriesData = new ArrayList<>();barChartSeriesData.add(new SeriesRenderData("箱", list.stream().map(ExportListVO::getNum).toArray(Integer[]::new)));barChart.setSeriesDatas(barChartSeriesData);data.setBarChart(barChart);//添加饼图数据ChartSingleSeriesRenderData pieChart = new ChartSingleSeriesRenderData();pieChart.setChartTitle("蔬菜统计饼图");pieChart.setCategories(list.stream().map(ExportListVO::getType).toArray(String[]::new));pieChart.setSeriesData(new SeriesRenderData("箱", list.stream().map(ExportListVO::getNum).toArray(Integer[]::new)));data.setPieChart(pieChart);//添加折现图ChartMultiSeriesRenderData lineChart = new ChartMultiSeriesRenderData();lineChart.setChartTitle("蔬菜统计折线图");lineChart.setCategories(list.stream().map(ExportListVO::getType).toArray(String[]::new));List<SeriesRenderData> lineChartSeriesData = new ArrayList<>();lineChartSeriesData.add(new SeriesRenderData("箱", list.stream().map(ExportListVO::getNum).toArray(Integer[]::new)));lineChart.setSeriesDatas(lineChartSeriesData);data.setLineChart(lineChart);//添加图片PictureRenderData img = new PictureRenderData(800, 200, "D:\\files\\img\\test.jpg");data.setImg(img);return data;}
五、模板说明
1.这里面由{{}}包裹的内容对应ExportVO 实体中的属性名称

2.这里的list对应ExportVO实体中的list属性,循环list写入文本,并判断是否是最后一条数据,最后一条数据由.句号结尾

3.table对应ExportVO实体中table属性,type和num对应集合实体类ExportListVO中的type和num

4.模板中右键柱状图,查看可选文字,修改替换文字为ExportVO实体中柱状图属性名称{{barChart}}

5.模板中右键饼图,查看可选文字,修改替换文字为ExportVO实体中饼图属性名称{{pieChart}}

6.模板中右键折线图,查看可选文字,修改替换文字为ExportVO实体中折线图属性名称{{lineChart}}

7.模板中右键图片,查看可选文字,修改替换文字为ExportVO实体中图片属性名称{{img}}

http://www.mmbaike.com/news/39992.html

相关文章:

  • 查看邮箱注册的网站seo 工具推荐
  • h5 css3网站欣赏营销传播
  • 如何给自己做网站全国疫情今天最新消息
  • web网站开发案例的好书正规优化公司哪家好
  • wordpress性能甘肃seo网站
  • 做网站需要哪个专业买链接网
  • 网站的引导页怎么做的精品成品网站入口
  • 自己做网站要多少钱网站优化建设
  • 做网站版头蓝色图片推广关键词优化
  • 哪个网站有上门做指甲推广营销软件app
  • 网站制作例子seo培训中心
  • 龙岩建设局网站罗小波线上营销活动方案
  • 制作微信公众号的网站开发武汉seo公司出 名
  • 网站建设和维护价格网站制作河南
  • 域名过期做的网站怎么办360竞价推广技巧
  • 如何仿做网站百度seo软件优化
  • 网站图片切换代码深圳华强北
  • seo网站计划书抖音关键词优化排名靠前
  • ui设计周末培训机构网站推广和精准seo
  • 杭州动漫设计公司最新招聘百度关键词优化企业
  • 黑河北京网站建设数据分析师培训机构推荐
  • 仿58网站怎么做凡科网小程序
  • 做阿里巴巴类似的网站吗seo和sem的区别是什么
  • 深圳网站建设网站制作公司seo推广人员
  • 典型网站建设百度文章收录查询
  • 车票网站模板百度排行
  • 视频上传网站建设外贸b2b平台都有哪些网站
  • 做网站图片太多怎么办营销推广渠道有哪些
  • 全能网站建设蜘蛛seo超级外链工具
  • 石家庄个人谁做网站外贸海外推广