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

自己怎么做淘宝客网站wordpress 用户前端

自己怎么做淘宝客网站,wordpress 用户前端,线上平面设计培训,兰州装修公司口碑排名作者#xff1a;Funky_oaNiu 一、#xff08;需求#xff09;生成的表格效果#xff1a;二、搞一个模板文件三、建立对应的表格实体类四、开始填充五、Vue3前端发起请求下载六、官方文档及AI问答 一、#xff08;需求#xff09;生成的表格效果#xff1a; 其中只有顶部… 作者Funky_oaNiu 一、需求生成的表格效果二、搞一个模板文件三、建立对应的表格实体类四、开始填充五、Vue3前端发起请求下载六、官方文档及AI问答 一、需求生成的表格效果 其中只有顶部日期、中间表格数据、底部总计数据是通过模板填充的 表头、绿色区域、列名、背景颜色、四个表格的结构是模板中定义好的 本文主要可学习如何填充数据 二、搞一个模板文件 这模板文件是自己编写的占位符使用{xx}的形式注意观察一下表格和外部的站位符区别表格是{data1.xxx}这种形式用来标识不同表格 三、建立对应的表格实体类 Data public class FillData {private String name;private double number;private Date date; }四、开始填充 这里是SpringBoot项目写在Controller里的仔细看代码注释这里就不过多描述了 Operation(summary 导出excel) GetMapping(/export-excel) public void exportExcel(PsbLoc psbLoc, HttpServletResponse response) throws IOException {// 读取资源文件这样打成jar模板文件也在里面防止模板文件被修改导致功能不可用文件是在src/main/resources/excelTemplates下的ClassPathResource resource new ClassPathResource(excelTemplatesFile.separatorproductReceiveSendTemplate.xlsx);// 组织并填充模板数据ByteArrayOutputStream byteArrayOutputStream compositeFill(resource.getInputStream());// 这里文件名不起作用是因为前端是写死的String fileName 多列表 System.currentTimeMillis() .xlsx;// 设置响应头告诉浏览器这是一个下载的文件这里文件名response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);response.setHeader(Content-Disposition, attachment; filename\ fileName \);// 将文件内容写入响应输出流浏览器可以直接触发下载response.getOutputStream().write(byteArrayOutputStream.toByteArray());response.getOutputStream().flush(); }private ByteArrayOutputStream compositeFill(InputStream templateInputStream) throws IOException {ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();// 使用EasyExcel的模板填充功能在这里指定合并单元格这里应该是easyExcel的bug第一列无法合并其他列都可以所以第一列单独用原生poi进行合并try (ExcelWriter excelWriter EasyExcel.write(byteArrayOutputStream).withTemplate(templateInputStream)// 这里的参数就是圈了个合并区域在这个正方形内的单元格都会合并要注意索引是从0开始的并且区域内不能存在已经合并的单元格否则报错.registerWriteHandler(new OnceAbsoluteMergeStrategy(2, 14, 9, 9)).registerWriteHandler(new OnceAbsoluteMergeStrategy(15, 27, 9, 9)).build()) {WriteSheet writeSheet EasyExcel.writerSheet().build();// 防止上面两个表格覆盖下面两个表格每一行都采用新增一行的方式FillConfig fillConfig FillConfig.builder().forceNewRow(Boolean.TRUE).build();// 使用模板填充必须使用FillWrapper这是官方要求并且每行两个表格只能有一个表格设置增行否则会存在一个表格有空行这里是造的测试数据excelWriter.fill(new FillWrapper(data1, makeTestData(1)), fillConfig, writeSheet);excelWriter.fill(new FillWrapper(data2, makeTestData(2)), writeSheet);excelWriter.fill(new FillWrapper(data3, makeTestData(3)), fillConfig, writeSheet);excelWriter.fill(new FillWrapper(data4, makeTestData(4)), writeSheet);// 设置表格外的填充数据例如总计、日期等数据HashMapString, Object map new HashMap();map.put(date, 2024年11月15日);map.put(allInStaockQty, 1);map.put(allOutStockQty, 2);map.put(allConvertStockQty, 3);map.put(allStockQty, 4);map.put(convertCenterStockQty, 5);map.put(mixOutStockQty, 6);map.put(endItem1, 7);map.put(endItem2, 8);map.put(endItem3, 9);map.put(endItem4, 10);map.put(endItem5, 11);excelWriter.fill(map, writeSheet);}// 合并单元格由于easyExcel自带的OnceAbsoluteMergeStrategy合并策略bug这里需要用poi合并一下return mergeCells(byteArrayOutputStream); }public ByteArrayOutputStream mergeCells(ByteArrayOutputStream inputStream) {ByteArrayOutputStream outputStream new ByteArrayOutputStream();try (ByteArrayInputStream byteArrayInputStream new ByteArrayInputStream(inputStream.toByteArray());Workbook workbook new XSSFWorkbook(byteArrayInputStream)) {// 获取第一个工作表Sheet sheet workbook.getSheetAt(0);// 合并第1列第3行到第15行注意行索引从0开始CellRangeAddress range1 new CellRangeAddress(2, 14, 0,0);sheet.addMergedRegion(range1);// 合并第1列第16行到第28行注意行索引从0开始CellRangeAddress range2 new CellRangeAddress(15, 27, 0, 0);sheet.addMergedRegion(range2);// 设置合并单元格的样式CellStyle style workbook.createCellStyle();style.setAlignment(HorizontalAlignment.CENTER);style.setVerticalAlignment(VerticalAlignment.CENTER);// 将修改后的内容写入 ByteArrayOutputStreamworkbook.write(outputStream);// 刷新一下确保数据完全写入outputStream.flush();} catch (IOException e) {e.printStackTrace();}return outputStream; }private ListFillData makeTestData(Integer listIndx) {ListFillData list ListUtils.newArrayList();for (int i 0; i 10; i) {FillData fillData new FillData();list.add(fillData);fillData.setName(张三listIndx);fillData.setNumber(5.2);fillData.setDate(new Date());}return list;}五、Vue3前端发起请求下载 const handleExport async () {try {// 这里的确认框、loading框代码就省略了// 发起导出const data await ReportTestApi.testReport(queryParams)download.excel(data, 测试模板填充.xlsx)} catch {} finally {exportLoading.value false} }const download {// 下载 Excel 方法excel: (data: Blob, fileName: string) {download0(data, fileName, application/vnd.ms-excel)},// 下载 Word 方法word: (data: Blob, fileName: string) {download0(data, fileName, application/msword)},// 下载 Zip 方法zip: (data: Blob, fileName: string) {download0(data, fileName, application/zip)},// 下载 Html 方法html: (data: Blob, fileName: string) {download0(data, fileName, text/html)},// 下载 Markdown 方法markdown: (data: Blob, fileName: string) {download0(data, fileName, text/markdown)} }const download0 (data: Blob, fileName: string, mineType: string) {// 创建 blobconst blob new Blob([data], { type: mineType })// 创建 href 超链接点击进行下载window.URL window.URL || window.webkitURLconst href URL.createObjectURL(blob)const downA document.createElement(a)downA.href hrefdownA.download fileNamedownA.click()// 销毁超连接window.URL.revokeObjectURL(href) }六、官方文档及AI问答 直接拉到下面看“多列表组合填充” https://easyexcel.opensource.alibaba.com/docs/current/quickstart/fill#%E6%A8%A1%E6%9D%BF-2 easyExcel官方问答AI对比了一下其他AI都没有它答的好 无疑: https://answer.opensource.alibaba.com/docs/intro 客官点个赞再走呗
http://www.w-s-a.com/news/22161/

相关文章:

  • p2p网站建设公司排名成都装饰公司
  • 网站被k怎么恢复wordpress缓存类
  • 做外贸有哪些网站平台最近文章 wordpress
  • joomla网站模板一个人做网站的swot
  • 南京建设网站需要多少钱深圳专业网站建设制作价格
  • 天河建网站装修公司线上推广方式
  • 超市网站怎么做的目前最流行的拓客方法
  • 做文字logo的网站贵阳商城网站开发
  • 沧州有没有做网站的中国建筑设计
  • 建设网站 系统占用空间在线代理浏览网站
  • 做海报有什么参考的网站网站建设验收合同
  • 酒店网站制作wordpress文章评论设置
  • 造一个官方网站wordpress mysql类
  • 怎么做卡商网站河南做网站找谁
  • 网站建设招标方案模板上线啦 图谱智能网站
  • 龙口网站建设公司哪家好wordpress 上传类型
  • 做外贸主要看什么网站服务平台的宗旨
  • 宜昌营销型网站购买网站
  • 如何查询网站建设时间wordpress 框架解析
  • 网站建设年终总结网站建设公司顺义
  • 网页给别人做的 网站后续收费吗获取更多付费流量
  • 金融交易网站建设金融 网站建设
  • 长沙网站建设联系电话怎么做表格
  • 网站怎么做域名实名认证龙华网站 建设信科网络
  • 企业网站规划方案网站是做排行榜
  • 万维网网站个人申请网站
  • 我想做网站怎么做昆山网站建设 全是乱码
  • 单位做网站怎么做圣诞树html网页代码
  • 网页开发与网站开发企业网站托管服务常用指南
  • 一站式服务图片临沂做进销存网站