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

世界三大咨询公司长沙seo行者seo09

世界三大咨询公司,长沙seo行者seo09,美国专门做特卖的网站有哪些,html导航网站源码EasyExcel导出数据,并将数据中的实体类url转为图片 在导出excel数据时,用户要求把存储二维码url转为图片保存,然后研究了一下具体实现。 代码展示: public void exportData(String pointName, String districtName, String str…

EasyExcel导出数据,并将数据中的实体类url转为图片

在导出excel数据时,用户要求把存储二维码url转为图片保存,然后研究了一下具体实现。

代码展示:

public void exportData(String pointName, String districtName, String streetName, HttpServletResponse response){//init dataList<GarbagePointExportTemplate> list = pointBSService.exportPointData(pointName, districtName, streetName);//handlerWriteCellStyle writeCellStyle = new WriteCellStyle();writeCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);writeCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);HorizontalCellStyleStrategy cellStyleStrategy = new HorizontalCellStyleStrategy(writeCellStyle, writeCellStyle);// Export data to ExcelByteArrayOutputStream outputStream = new ByteArrayOutputStream();EasyExcel.write(outputStream, GarbagePointExportTemplate.class).sheet("Sheet1").registerWriteHandler(cellStyleStrategy).doWrite(list);// Insert images into exported Exceltry {ExcelUtils.insertImages(outputStream, list);// 设置响应头response.setContentType("application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment; filename=点位集合.xlsx");// 将文件数据写入响应的输出流response.getOutputStream().write(outputStream.toByteArray());response.getOutputStream().flush();response.getOutputStream().close();} catch (IOException e) {throw new RuntimeException(e);}}

ExcelUtils

package com.jeesite.modules.utils.excel;import com.jeesite.modules.backstage.entity.GarbagePointExportTemplate;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.util.IOUtils;import java.io.*;
import java.net.URL;
import java.util.List;/*** @author fwh* @date 2024/5/9/009* @remark:*/
public class ExcelUtils {public static void insertImages(ByteArrayOutputStream outputStream, List<GarbagePointExportTemplate> exportData) throws IOException {try (Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(outputStream.toByteArray()))) {Sheet sheet = workbook.getSheet("Sheet1"); // 获取 Sheet1Drawing<?> drawing = sheet.createDrawingPatriarch();CreationHelper creationHelper = workbook.getCreationHelper();int rowIndex = 1;for (GarbagePointExportTemplate item : exportData) {Row row = sheet.getRow(rowIndex);Cell cell = row.getCell(9); // Assuming the URL is in the tenth columnString codeUrl = item.getCheckCode();if (codeUrl != null && !codeUrl.isEmpty()) {// 清空 URL 数据(cell.setCellValue("") 设置单元格的值为空字符串并不会清除单元格中的链接或图片。这是因为链接和图片是以不同的方式存储在单元格中的,仅设置值为空字符串并不会触发删除操作。)cell.setCellType(CellType.BLANK);byte[] imageBytes = getImageBytes(codeUrl);if (imageBytes != null) {int pictureIdx = workbook.addPicture(imageBytes, Workbook.PICTURE_TYPE_JPEG);ClientAnchor anchor = creationHelper.createClientAnchor();anchor.setCol1(cell.getColumnIndex());anchor.setRow1(cell.getRowIndex());anchor.setCol2(cell.getColumnIndex() + 1);anchor.setRow2(cell.getRowIndex() + 1);Picture picture = drawing.createPicture(anchor, pictureIdx);double desiredWidth = 0.8; // Set the width of the picture to 80%double desiredHeight = 1; // Set the height of the picture to 80%picture.resize(desiredWidth, desiredHeight);}}rowIndex++;}outputStream.reset(); // 重置 ByteArrayOutputStreamworkbook.write(outputStream);}}private static byte[] getImageBytes(String codeUrl) throws IOException {try (InputStream inputStream = new URL(codeUrl).openStream()) {return IOUtils.toByteArray(inputStream);}}
}

实体类

package com.jeesite.modules.backstage.entity;import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.jeesite.common.utils.excel.annotation.ExcelField;
import com.jeesite.common.utils.excel.annotation.ExcelFields;/*** @author fwh* @date 2024/5/8/008* @remark:*/@ContentRowHeight(60)
@ColumnWidth(20)
public class GarbagePointExportTemplate {@ColumnWidth(30)@ExcelProperty("点位名称")private String pointName;@ColumnWidth(30)@ExcelProperty("区县名称")private String districtsName;@ColumnWidth(30)@ExcelProperty("街道名称")private String streetName;@ColumnWidth(30)@ExcelProperty("社区名称")private String communityName;@ColumnWidth(15)@ExcelProperty("责任人")private String dutyName;@ColumnWidth(15)@ExcelProperty("责任人电话")private String mobile;@ColumnWidth(10)@ExcelProperty("经度")private String lon;@ColumnWidth(10)@ExcelProperty("维度")private String lat;@ColumnWidth(30)@ExcelProperty("详情地址")private String addr;@ColumnWidth(20)@ExcelProperty("二维码")private String checkCode;@ExcelFields({@ExcelField(title="点位名称", attrName="pointName",width = 25*256, align= ExcelField.Align.CENTER, sort=1)})public String getPointName() {return pointName;}public void setPointName(String pointName) {this.pointName = pointName;}@ExcelFields({@ExcelField(title="点位区县", attrName="districtsName",width = 25*256, align= ExcelField.Align.CENTER, sort=2)})public String getDistrictsName() {return districtsName;}public void setDistrictsName(String districtsName) {this.districtsName = districtsName;}@ExcelFields({@ExcelField(title="街道名称", attrName="streetName",width = 25*256, align= ExcelField.Align.CENTER, sort=3)})public String getStreetName() {return streetName;}public void setStreetName(String streetName) {this.streetName = streetName;}@ExcelFields({@ExcelField(title="社区名称", attrName="communityName",width = 25*256, align= ExcelField.Align.CENTER, sort=4)})public String getCommunityName() {return communityName;}public void setCommunityName(String communityName) {this.communityName = communityName;}@ExcelFields({@ExcelField(title="责任人", attrName="dutyName",width = 25*256, align= ExcelField.Align.CENTER, sort=5)})public String getDutyName() {return dutyName;}public void setDutyName(String dutyName) {this.dutyName = dutyName;}@ExcelFields({@ExcelField(title="责任人电话", attrName="mobile",width = 25*256, align= ExcelField.Align.CENTER, sort=6)})public String getMobile() {return mobile;}public void setMobile(String mobile) {this.mobile = mobile;}@ExcelFields({@ExcelField(title="经度", attrName="lon",width = 25*256, align= ExcelField.Align.CENTER, sort=7)})public String getLon() {return lon;}public void setLon(String lon) {this.lon = lon;}@ExcelFields({@ExcelField(title="维度", attrName="lat",width = 25*256, align= ExcelField.Align.CENTER, sort=8)})public String getLat() {return lat;}public void setLat(String lat) {this.lat = lat;}@ExcelFields({@ExcelField(title="具体地址", attrName="addr",width = 25*256, align= ExcelField.Align.CENTER, sort=9)})public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@ExcelFields({@ExcelField(title="点位二维码", attrName="checkCode",width = 25*256, align= ExcelField.Align.CENTER, sort=10)})public String getCheckCode() {return checkCode;}public void setCheckCode(String checkCode) {this.checkCode = checkCode;}
}
http://www.hkea.cn/news/748070/

相关文章:

  • 淄博张店做网站的公司爱站小工具圣经
  • wordpress w3seo优化自学
  • 临沂手机建站模板微信seo排名优化软件
  • 网站管理员怎么做板块建设艺人百度指数排行榜
  • 如何创建企业网站网络舆情处置的五个步骤
  • 做站长工具网站周口seo公司
  • 泉州自助建站系统地推
  • 美国 做网站免费网站建设哪家好
  • 如何做响应式布局网站seo搜索引擎优化期末及答案
  • 电脑系统优化软件十大排名北京网优化seo公司
  • 宁夏网站建设优化外贸网站优化推广
  • 开发网站开发工程师培训心得简短200字
  • 网站优化工具升上去软文营销代理
  • 北京监理协会培训网站变现流量推广app
  • 邯郸做wap网站最全bt搜索引擎入口
  • 用网站做自我介绍pptsem推广竞价托管
  • 建设网站项目的目的是什么意思营销型网站方案
  • 濮阳网站建设价格南昌seo排名收费
  • jsp做网站案例steam交易链接在哪里看
  • 做网站需要招聘内容范本信息流广告
  • 如何建公众号外贸网站建设优化
  • 怎么把网站横幅做很大东莞营销推广公司
  • 网站运营与管理实训报告松松软文平台
  • 奉化云优化seo手机网站排名优化软件
  • h5响应式集团网站推荐电商平台有哪些?
  • 企业所得税税率三个档次关键词优化快排
  • 长宁区网站建设b2b免费发布平台
  • php 个人网站网站安全检测工具
  • 做的网站很卡是什么原因seochan是什么意思
  • 怎么做盗版视频网站吗百度权重1