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

上海网站建设价钱ps做网站顶部

上海网站建设价钱,ps做网站顶部,模板支撑体系搭设规范,做的好的网站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.yayakq.cn/news/861225/

相关文章:

  • 网站建设与管理岗位闵行集团网站建设
  • c 转网站开发wordpress add_action()
  • 高密做网站哪家强代理照片视频制作软件app
  • 高端网站设计建站西安易码建站
  • 网站设计 推广包装模板网站
  • 宁波网站建设的价格表重庆网站设计最佳科技
  • 吉林住房和城乡建设部网站企业电子商务网站的域名命名
  • 虹口手机网站制作企业门户网站开发费用
  • 建站页面wordpress 双栏主题
  • 诸城市网站建设最好的dm单网站建设
  • 特色的佛山网站建设厦门网站建设哪家便宜
  • 网站建设模块是什么意思产品推广方案设计
  • 海口建站模板厂家杭州小程序设计制作
  • 台州网站制作报价wordpress 翻页 插件
  • 找别人做网站可以提供源码吗给企业做网站的好处
  • 公司网站建设建设网站开发与管理课程设计心得
  • 市场推广专员上海seo网站优化公司
  • 在国外做电商网站有哪些wordpress电台主题
  • 杭州公司网站制作维护wordpress教程 网站标题
  • 制作html购物网站源代码wordpress 图片管理
  • 襄阳建设网站网站建设与管理试卷及答案
  • 郑州做网站网站建设费用站酷网络
  • wordpress做旅游网站什么样的网站
  • 福建网站开发公司网站建设项目策划
  • 广州做网站 信科便宜wordpress上传主题没有反应
  • 烟台免费做网站网页设计与制作教程机械工业出版社
  • 北京移动官方网站南京外贸网站建设怎么收费
  • 凡科网站怎么做建站自己做装修网站需要多少钱
  • 网站建设费包括什么网站推广的方法是什么
  • 网站seo公司即给做网站又给我们做推广的公司呢