从网络上获取图片,并写入excel文件
package com.weChat.utils; import com.manage.utils.DateUtil;
import com.manage.utils.MD5Util;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.wicket.common.utils.DateUtils; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL; public class UrlImg { /**
* @param url 网络图片地址
* @param filePath 保存图片的父级文件夹路径
* @return
*/
public String downloadImgByUrl(String url, String filePath) {
FileOutputStream fos = null;
/* BufferedInputStream bis = null;*/
HttpURLConnection httpUrl = null;
URL netUrl = null;
String fileName = "";
try {
netUrl = new URL(url);
httpUrl = (HttpURLConnection) netUrl.openConnection();
httpUrl.connect();
//bis = new BufferedInputStream(httpUrl.getInputStream()); ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); BufferedImage bufferImg = ImageIO.read(httpUrl.getInputStream());
ImageIO.write(bufferImg, "jpg", byteArrayOut); int width = bufferImg.getWidth();//原始宽度
int height = bufferImg.getHeight();//原始高度 System.out.println("图片的高度:" + height + "\t 宽度:" + width); HSSFWorkbook workbook = new HSSFWorkbook();
// 生成一个表格
HSSFSheet sheet = workbook.createSheet("图片导出测试");
// 设置A列的宽度为30*256;
sheet.setColumnWidth(0, 200 * 256);
Row row = sheet.createRow(0);
row.setHeight((short) (height / 2 * 100)); // 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
// anchor主要用于设置图片的属性
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) 0, 0, (short) 6, 16 );
anchor.setAnchorType(3);
// 插入图片
patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); String time = DateUtils.getTimeRandom("yyMMddhhmmss");
fileName = MD5Util.MD5(time) + ".xls";//图片的类型,我默认设定为jpg格式;可以自定义文件类型的,网络图片地址应该会有图片类型的,这里就需要你自己去看一下网络图片地址的规则了 filePath = filePath + "/" + fileName;
File outFile = new File(filePath);
outFile.getParentFile().mkdirs();
if (!outFile.exists()) {
outFile.createNewFile();
}
fos = new FileOutputStream(outFile);
// 写入excel文件
workbook.write(fos); fos.close();
/* byte[] buffer = new byte[3042];
int bytesRead = 0; while ((bytesRead = workbook.read!= -1) {
fos.write(buffer, 0, bytesRead);
}*/ } catch (Exception e) { e.getMessage();
//System.out.print("请确认网络图片是否正确!");
}
return fileName;
} public static void main(String[] args) { new UrlImg().downloadImgByUrl("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523422575372&di=1ae9823657534b984bce8f3d36b579a1&imgtype=0&src=http%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2F4516522608648333f98851fb66fcc5432eee9faa.jpg", "D:\\二维码");
}
}
从网络上获取图片,并写入excel文件的更多相关文章
- ios 从网络上获取图片并在UIImageView中显示
ios 从网络上获取图片 -(UIImage *) getImageFromURL:(NSString *)fileURL { NSLog(@"执行图片下载函数"); UIIm ...
- 【iOS开发-从网络上获取图片尺寸】
实际开发过程中,容易碰到从网络上获取图片尺寸的场景,比如一个UIImageView要装载从网络上获取的图片,但要先设置其frame,此时又不知道图片尺寸,就要从网络上获取尺寸了.为了最好的用户体验,一 ...
- Android 多线程:使用Thread和Handler (从网络上获取图片)
当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件分 ...
- 从网络上获取图片并保存在sdCard上
package com.aib.soft; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileO ...
- ios 从网络上获取图片
-(UIImage *) getImageFromURL:(NSString *)fileURL { NSLog(@"执行图片下载函数"); UIImage * result; N ...
- ImageView显示网络上的图片
ImageView显示网络上的图片 一.简介 二.方法 1)ImageView显示网络上的图片方法 第一步:从网络上下载图片 byte[] byteArr = downImage();//这个是自己写 ...
- [Android]通过setImageURI设置网络上面的图片
设置imageView显示网络上的图片 picUrl = new URL(getIntent().getExtras().getString("map_url")); Bitmap ...
- Python:将爬取的网页数据写入Excel文件中
Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...
- Python中使用第三方库xlrd来写入Excel文件示例
Python中使用第三方库xlrd来写入Excel文件示例 这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表 ...
随机推荐
- SWPU新闻后台登录页面
最终效果图: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...
- impdp导入dmp数据实例
--创建表空间 create tablespace ALIX datafile 'F:\File\ALIX.ora' size 1000m; --创建数据库目录 create directory ex ...
- JAVA写接口傻瓜(%)教程(五)
今天主要说一下在URL 中使用?传值的问题.在显式的使用get方法获取特点数据时,一般会通过?传递参数值,sevlert根据参数在数据库中对应的查找内容.所以,SQL语句需要拼接,要加上后面的参数.参 ...
- zzw原创_非root用户下安装nginx
想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...
- element-ui <el-date-picker> 回显格式 yyyy-MM-dd 传值格式 yyyyMMddHHmmss
<template> <!-- 需求:使用 <el-date-picker> 日期插件 前端显示2018-10-22 后台需要传时间戳,对这个日期插件不熟悉,当时搞了好长 ...
- python数据结构与算法之单链表
表的抽象数据类型 ADT list: #一个表的抽象数据类型 List(self) #表的构造操作,创建一个空表 is_empty ...
- 基于Live555实现RtspServer及高清高分辨率和高码率视频传输优化
基于Live555实现RtspServer及高清高码率视频传输优化 最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲.综合考虑后,基本都是在基于liv ...
- .net core 2.0 webapi部署iis操作
1.安装 .net core 2.0 runtime, (dotnet-runtime-2.0.7-win-x64.exe) https://www.microsoft.com/net/downloa ...
- canvas 实现刮刮乐
在解决问题前,我们先来了解一下 canvas 标签canvas 是 html5 出现的新标签,像所有的 dom 对象一样它有自己本身的属性.方法和事件,其中就有绘图的方法,js 能够调用它来进行绘图. ...
- python学习------面向对象进阶
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...