NPOI2.2.0.0实例详解(十一)—向EXCEL插入图片
--------------------- 本文来自 天水宇 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xxs77ch/article/details/50553857?utm_source=copy
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using NPOI.HSSF.UserModel;
- using NPOI.SS.Formula.Eval;
- using NPOI.SS.Formula.Functions;
- using NPOI.SS.UserModel;
- using NPOI.XSSF.UserModel;
- using NPOI.POIFS.FileSystem;
- using NPOI.HPSF;
- using System.IO;
- using NPOI.SS.Util;
- using System.Drawing;
- using NPOI.HSSF.Util;
- using System.Web;
- using System.Net;
- using System.Net.Mail;
- namespace NPOI
- {
- class Program10
- {
- static void Main(string[] args)
- {
- //说明:插入图片
- //1.创建EXCEL中的Workbook
- IWorkbook myworkbook = new HSSFWorkbook();
- //2.创建Workbook中的Sheet
- ISheet mysheet = myworkbook.CreateSheet("sheet1");
- //第一步:读取图片到byte数组
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://img1.soufunimg.com/message/images/card/tuanproj/201511/2015112703584458_s.jpg");
- byte[] bytes;
- using (Stream stream = request.GetResponse().GetResponseStream())
- {
- using (MemoryStream mstream = new MemoryStream())
- {
- int count = 0;
- byte[] buffer = new byte[1024];
- int readNum = 0;
- while ((readNum = stream.Read(buffer, 0, 1024)) > 0)
- {
- count = count + readNum;
- mstream.Write(buffer, 0, 1024);
- }
- mstream.Position = 0;
- using (BinaryReader br = new BinaryReader(mstream))
- {
- bytes = br.ReadBytes(count);
- }
- }
- }
- //第二步:将图片添加到workbook中 指定图片格式 返回图片所在workbook->Picture数组中的索引地址(从1开始)
- int pictureIdx = myworkbook.AddPicture(bytes, PictureType.JPEG);
- //第三步:在sheet中创建画部
- IDrawing patriarch = mysheet.CreateDrawingPatriarch();
- //第四步:设置锚点 (在起始单元格的X坐标0-1023,Y的坐标0-255,在终止单元格的X坐标0-1023,Y的坐标0-255,起始单元格行数,列数,终止单元格行数,列数)
- IClientAnchor anchor =patriarch.CreateAnchor(0,0,0,0,0,0,2,2);
- //第五步:创建图片
- IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);
- //6.保存
- FileStream file = new FileStream(@"E:\myworkbook11.xls", FileMode.Create);
- myworkbook.Write(file);
- file.Close();
- }
- }
- }
1 // 插入 PNG 图片至 Excel
2 String fileName = strAppRootPath + "images/" + "bxlogo.png";
3
4 InputStream is = new FileInputStream(fileName);
5 byte[] bytes = IOUtils.toByteArray(is);
6
7 int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
8
9 CreationHelper helper = workbook.getCreationHelper();
10 Drawing drawing = sheet.createDrawingPatriarch();
11 ClientAnchor anchor = helper.createClientAnchor();
12
13 // 图片插入坐标
14 anchor.setCol1(0);
15 anchor.setRow1(1);
16 // 插入图片
17 Picture pict = drawing.createPicture(anchor, pictureIdx);
18 pict.resize();
NPOI2.2.0.0实例详解(十一)—向EXCEL插入图片的更多相关文章
- NPOI2.2.0.0实例详解(十)—设置EXCEL单元格【文本格式】 NPOI 单元格 格式设为文本 HSSFDataFormat
NPOI2.2.0.0实例详解(十)—设置EXCEL单元格[文本格式] 2015年12月10日 09:55:17 阅读数:3150 using System; using System.Collect ...
- NPOI2.2.0.0实例详解(八)—设置EXCEL单元格【数字格式】
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- NPOI2.2.0.0实例详解(九)—设置EXCEL单元格【时间格式】
原文:http://blog.csdn.net/xxs77ch/article/details/50245391 using System; using System.Collections.Gene ...
- RxJava2.0的使用详解
RxJava2.0的使用详解 1,初识RxJava RxJava就是一种用Java语言实现的响应式编程,来创建基于事件的异步程序 RxJava是一个基于事件订阅的异步执行的一个类库,目前比较火的一些技 ...
- redis5.0.3配置文件详解
Redis最新版本5.0.3配置文件详解 单位 #当你需要为某个配置项指定内存大小的时候,必须要带上单位, #通常的格式就是 1k 5gb 4m 等: #1k => 1000 bytes #1k ...
- IIS7.0 Appcmd 命令详解和定时重启应用池及站点的设置
IIS7.0 Appcmd 命令详解 废话不说!虽然有配置界面管理器!但是做安装包的时候命令创建是必不可少的!最近使用NSIS制作安装包仔细研究了一下Appcmd的命令,可谓是功能齐全. 上网查了些资 ...
- loadrunner11.0 安装破解详解使用教程
loadrunner11.0 安装破解详解使用教程 来源:互联网 作者:佚名 时间:01-21 10:25:34 [大 中 小] 很多朋友下载了loadrunner11但不是很会使用,这里简单介绍下安 ...
- Apache2.2+Tomcat7.0整合配置详解
一.简单介绍 Apache.Tomcat Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows.Unix.Lin ...
- IIS7.0 Appcmd 命令详解
原文 IIS7.0 Appcmd 命令详解 一:准备工作 APPcmd.exe 位于 C:\Windows\System32\inetsrv 目录 使用 Cd c:\Windows\System32\ ...
随机推荐
- LG4455 【[CQOI2018]社交网络】
分析 这题我们先转化为图论模型,发现求的其实就是有向图中以1为根的生成树数量.而关于这一问题存在O(3^n * n^2)的算法,一看数据n=250,发现不行.于是需要更高效的算法--Matrix-Tr ...
- test20181004 苹果树
题意 分析 对每个点维护子树所能达到的dfn最大值.最小值.次大值.次小值,然后就可以计算原树中每个点与父亲的连边对答案的贡献. 如果子树中没有边能脱离子树,断掉该边与任意一条新加的边都成立,答案就加 ...
- pycharm PYTHONPATH
Hi brandenju! I believe os.chdir doesn't affect PYTHONPATH so changing your working directory at run ...
- sql server CLR
1. 配置sql server 启用CLR 在SQL Server2005/2008里面,CLR默认是关闭的.可以使用如下SQL语句开启CLR. sp_configure 'show advanced ...
- Javascript 在严格模式下不允许删除变量或对象
如下代码,运行后在浏览器中会报错. <script> "use strict"; var x = 3.14; delete x; </script>
- bzoj1042硬币购物
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1042 dp预处理+容斥原理. 先预处理求出无限制的各面值的组成方案数 f (完全背包). 求s ...
- Microsoft Dynamics CRM 2011 中 SQL 语句总结
一.查询用户和团队 插入的类型:OwnerIdType 可以为用户或团队: 1.团队: select top 1 ObjectTypeCode from metadataschema.entity w ...
- 【python】实例-把两个无规则的序列连接成一个序列,并删除重复的元素,新序列按照升序排序
list_one=[3,6,2,17,7,33,11,7] list_two=[1,2,3,7,4,2,17,33,11] list_new=list_one+list_two list=[] i=0 ...
- Python的数据库连接池DBUtils
DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程 ...
- C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...