今天整理笔记的时候看到之前的一段代码,是有关于下载含有网络图片的excle,把代码贴出来大家让大家指导一下
下载下来的excel类似这种效果,我这边处理的是网络图片哟

1.部分代码展示

@RequestMapping(value = "downReadilyPager")
@ResponseBody
public void downReadilyPager(HttpServletRequest request, HttpServletResponse response) {try {ReadilyRequest readilyRequest = new ReadilyRequest();List<Readily> list = new ArrayList<Readily>();String ids = request.getParameter("ids");if (!StringUtils.isBlank(ids)) {String[] idArray = ids.split(",");for (String id : idArray) {Readily temp = readilyService.get(Integer.parseInt(id));Account account = accountService.get(temp.getAccountId());temp.setAccount(account);list.add(temp);}}HSSFWorkbook hssfWorkbook = new HSSFWorkbook();SimpleDateFormat simpledate = new SimpleDateFormat("yyyy-MM-dd");HSSFSheet sheet = hssfWorkbook.createSheet("报表管理");HSSFRow row = sheet.createRow(0);HSSFCell cell = row.createCell(0);//设置表格样式sheet.setColumnWidth(0, 4000);sheet.setColumnWidth(1, 4000);sheet.setColumnWidth(2, 8000);sheet.setColumnWidth(3, 8000);sheet.setColumnWidth(4, 8000);sheet.setColumnWidth(5, 8000);sheet.setColumnWidth(6, 8000);sheet.setColumnWidth(7, 8000);sheet.setColumnWidth(8, 8000);sheet.setColumnWidth(9, 8000);sheet.setColumnWidth(10, 8000);//一定要放在循环外,只能声明一次String fileName = "报表-" + simpledate.format(new Date());cell.setCellValue(fileName);row = sheet.createRow(1);cell = row.createCell(0);cell.setCellValue("主题");cell = row.createCell(1);cell.setCellValue("内容");cell = row.createCell(2);cell.setCellValue("地址");cell = row.createCell(3);cell.setCellValue("状态");cell = row.createCell(4);cell.setCellValue("拍摄时间");cell = row.createCell(5);cell.setCellValue("处理时间");cell = row.createCell(6);cell.setCellValue("描述");cell = row.createCell(7);cell.setCellValue("昵称");cell = row.createCell(8);cell.setCellValue("电话");cell = row.createCell(9);cell.setCellValue("图片");int line = 2;//循环 开始赋值if (list != null && list.size() > 0) {for (int i = 0; i < list.size(); i++) {Readily s = list.get(i);row = sheet.createRow(line++);if (s.getTitle() != null) {cell = row.createCell(0);row.setHeight((short) (6 * 200));cell.setCellValue(s.getTitle());}if (s.getContent() != null) {cell = row.createCell(1);cell.setCellValue(s.getContent());}if (s.getAddress() != null) {cell = row.createCell(2);cell.setCellValue(s.getAddress());}if (s.getState() != null) {cell = row.createCell(3);if (s.getState() == 0) {cell.setCellValue("未处理");} else if (s.getState() == 1) {cell.setCellValue("已经处理");}}if (s.getTime() != null) {cell = row.createCell(4);cell.setCellValue(simpledate.format(s.getTime()));}if (s.getUpdateTime() != null) {cell = row.createCell(5);cell.setCellValue(simpledate.format(s.getUpdateTime()));}if (s.getRemark() != null) {cell = row.createCell(6);cell.setCellValue(s.getRemark());}if (s.getAccount().getNickName() != null) {cell = row.createCell(7);cell.setCellValue(s.getAccount().getNickName());}if (s.getAccount().getPhone() != null) {cell = row.createCell(8);cell.setCellValue(s.getAccount().getPhone());}if (!StringUtils.isBlank(s.getImgUrl())) {String[] imgUrls = s.getImgUrl().split(",");int length = imgUrls.length;HSSFPatriarch patriarch = sheet.createDrawingPatriarch();//for循环中处理图片的关键代码for (int j = 0; j < length; j++) {BufferedImage bufferImg = null;//网络图片用下面的方法处理不适合本地图片URL url = new URL(imgUrls[j]);ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();bufferImg = ImageIO.read(url);ImageIO.write(bufferImg, "jpg", byteArrayOut);
//***(short) (9 + j), (2 + i),   图片起点的位置    (short) (10 + j), (3 + i) 图片终点的位置***HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) (9 + j), (2 + i), (short) (10 + j), (3 + i));patriarch.createPicture(anchor, hssfWorkbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));}}}}OutputStream fout = response.getOutputStream();response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xls", "UTF-8"));response.setContentType("application/msexcel;charset=UTF-8");//表格写出hssfWorkbook.write(fout);fout.flush();fout.close();} catch (Exception e) {e.printStackTrace();}
}

2.jar包下载地址

https://download.csdn.net/download/weixin_38638883/10652650

java下载excel(excel含有多张网络图片)相关推荐

  1. Java 下载解析Excel文件 报错:jxl.read.biff.BiffException: Unable to recognize OLE stream

    项目开发需要先下载excel文件,然后解析出内容,最后将内容分批次下发给APP端. 在创建Excel的解析实例Workbook时,发现构造函数的入参是InputStream,心中窃喜. public ...

  2. java下载文件excel格式错乱,excel获取文件表格数据格式化-excel表格里的文件突然格式全部乱了,怎么恢复?...

    JAVA实现EXCEL表格文件(.xls格式)的读取.修改.... 在excel中,找打开按钮,选择文件格式为 .csv的,然后选择你要导入的CSV文件,会自动弹出文本导入向导,选择数据的分隔符,可以 ...

  3. java 下载样板Excel文件

    // 下载本地文件 String fileName = "苹果知识库授权网点整理汇总副本20130210.xls".toString(); // 文件的默认保存名 //File f ...

  4. java下载本地excel文件

    @GetMapping("/downloadByPath") public void downloadByPath(String path, HttpServletResponse ...

  5. java下载文件时告警:文件格式和扩展名不匹配 方法

    java下载的excel文件,打开时告警: 解决方法是: 1. 创建工作薄的时候,用Workbook workbook = new XSSFWorkbook(); 设置正确的response头信息, ...

  6. java下载附件给(pdf、pptx、word、excel、图片)添加水印

    java下载附件给(pdf.pptx.word.excel.图片)添加水印 使用组件 poi itext spire.xls ooxml-schemas twelvemonkeys.imageio 等 ...

  7. JAVA代码实现Excel下载,中文名称乱码问题

    #JAVA代码实现Excel下载,中文名称乱码问题 ##第一:检查乱码的服务器版本是否在代码中进行处理 ###处理方式: if(request.getHeader("user-Agent&q ...

  8. java实现复制excel模板(多个工作表)并下载的代码

    java实现复制excel模板(多个工作表)并下载的代码 项目心得 最近在开发项目的过程遇到一个需求需要把一个档案的信息导入到excel中,并实现下载功能,经过借鉴别人的代码,拍坑,历经磨难终于把这个 ...

  9. java下载Excel表格(ajax处理流文件)

    java下载Excel表格(ajax处理流文件) 遇到的问题: ① 导出Excel,处理大量的数据 ② 后端使用Apache POI中的SXSSFWorkbook导出功能,不使用xlsx.core.m ...

最新文章

  1. django创建项目案例1详细介绍方法01
  2. EXTJS布局示例(panel,Viewport,TabPanel)
  3. 通过cmd和npm指令,快速引入element-ui组件
  4. hdu-5703 Desert(水题)
  5. osgb转obj工具_在ArcGIS Pro中OSGB数据转换及发布服务流程
  6. elastic集群单节点停机维护
  7. 如何高效阅读 Spark 和 Hadoop 这类大型开源项目源代码?
  8. WebSocket刷新断开原因、设计心跳机制防止自动断开连接
  9. chrome 长截屏插件
  10. 城市智慧灯杆解决方案
  11. arcgis面积计算
  12. 隐含马尔可夫 隐含状态_隐含可读性
  13. python报错 unexpected keyword argument ‘categories‘
  14. MSN群每周讨论之快速估算和管理
  15. CALayer的简单使用
  16. 12组-选题与需求分析报告
  17. 编写51单片机程序,输出方波,at89s52的单片机
  18. SQL 修改日期类型,只修改年月日不修改时分秒
  19. Text to image论文精读PDF-GAN:文本生成图像新度量指标SSD Semantic Similarity Distance
  20. my-view-isnt-reflecting-changes-ive-made-to-the-underlying-tables

热门文章

  1. 教你创建qq好友桌面快捷方式
  2. 接入层、汇聚层和核心层工业交换机怎么选?
  3. 编解码(1)之基本像素格式转换
  4. 原生JS实现7中简单效果
  5. Java,Android,计算机原理视频,500G视频资料
  6. crash工具分析sysdump使用
  7. Solution to no ADO.NET in VS2019 VS里没有ADO的解决办法
  8. css、HTML制作小米商城网页(二)
  9. 伪装游戏软件变成计算机,注意!Steam上这款游戏是伪装的病毒:把玩家PC变成矿机...
  10. 拼多多参谋在什么地方?多多参谋的作用是什么?