C# 实现Excel导出图片
1.导出Excle表格,表格内嵌套图片功能:
2.封装导出文件方法
public bool ExportExcel(DataTable dt, string notile,string title)
{
CreatePic cp = new CreatePic();
//创建工作簿
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
//创建表
NPOI.SS.UserModel.ISheet sheet = book.CreateSheet(notile);
//自适应列宽
// sheet.AutoSizeColumn(1, true);
//标题行合并单元格
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, dt.Columns.Count - 1));
NPOI.SS.UserModel.IRow firstrow = sheet.CreateRow(0);
NPOI.SS.UserModel.ICell firstcell = firstrow.CreateCell(0);
//表名样式
NPOI.SS.UserModel.ICellStyle styleHeader = book.CreateCellStyle();
NPOI.SS.UserModel.IFont fontHeader = book.CreateFont();
styleHeader.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;
styleHeader.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
fontHeader.FontHeightInPoints = 15;
styleHeader.SetFont(fontHeader);
firstcell.CellStyle = styleHeader;
firstcell.SetCellValue(title);
try
{
//列名样式
NPOI.SS.UserModel.ICellStyle styleColName = book.CreateCellStyle();
NPOI.SS.UserModel.IFont fontColName = book.CreateFont();
styleColName.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
styleColName.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
fontColName.FontHeightInPoints = 14;
styleColName.SetFont(fontColName);
//数据的样式、字体大小
NPOI.SS.UserModel.ICellStyle styleBody = book.CreateCellStyle();
NPOI.SS.UserModel.IFont fontBody = book.CreateFont();
styleBody.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
styleBody.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
fontBody.FontHeightInPoints = 12;
styleBody.SetFont(fontBody);
//创建具体单元格数据
int rowCount = dt.Rows.Count;
int colCount = dt.Columns.Count;
NPOI.SS.UserModel.IRow colNameRow = sheet.CreateRow(1);
for (int x = 0; x < colCount; x++)
{ //将列名写入单元格
NPOI.SS.UserModel.ICell colNameCell = colNameRow.CreateCell(x);
colNameCell.SetCellValue(dt.Columns[x].ColumnName);
colNameCell.CellStyle = styleColName;
}
for (int i = 0; i < rowCount; i++)
{
NPOI.SS.UserModel.IRow row = sheet.CreateRow(i + 2);//数据从第三行开始 第一行表名 第二行列名
for (int j = 0; j < colCount; j++)
{
//填充数据
NPOI.SS.UserModel.ICell cell = row.CreateCell(j);
if (dt.Rows[i][j] != null)
{
cell.SetCellValue(dt.Rows[i][j].ToString() + " ");
if (dt.Rows[i][j].ToString().Contains("www"))
{
cell.Row.Height = 4000;
cp.AddPic(sheet, book, dt.Rows[i][j].ToString(), i+2, j);
}
}
else
{
cell.SetCellValue("");
}
cell.CellStyle = styleBody;
}
}
//自适应列宽
for (int x = 0; x < colCount; x++)
{
sheet.AutoSizeColumn(x, true);
}
//最后插入图片
//设置宽高
// sheet.SetColumnWidth(4,2000);
//此处代码是将 xls文件发到页面通过浏览器直接下载到本地 可以放到 界面调用的地方
System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
//Response.AddHeader("Content-Disposition", string.Format("attachment; filename=ccc.xls"));
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(notile + ".xls"));//注意
Response.BinaryWrite(ms.ToArray());
book = null;
ms.Close();
ms.Dispose();
return true;
}
catch
{
throw new Exception();
}
finally
{
book = null;
}
}
3.具体的引用
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
3.封装成方法,使用NOPI插件导出Excel时候调用改方法即可
/// <summary>
/// 封装方法,用于表格内渲染图片
/// </summary>
/// <param name="sheet"></param>
/// <param name="workbook">工作簿</param>
/// <param name="fileurl">图片地址</param>
/// <param name="row">行</param>
/// <param name="col">列</param>
public void AddPic(ISheet sheet, HSSFWorkbook workbook, string fileurl, int row, int col)
{
byte[] bytes = System.IO.File.ReadAllBytes(fileurl);
int picindex = workbook.AddPicture(bytes, NPOI.SS.UserModel.PictureType.JPEG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,48,48,col,row,col+1,row+1);
HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor,picindex);
}
文章为原创作品
C# 实现Excel导出图片相关推荐
- excel导出图片---HSSFWorkbook--SXSSFWorkbook
目录 1 概述 2 HSSFWorkbook 2.1 导出要点 3 SXSSFWorkbook 1 概述 平时在工作中,excel导出图片经常会用到,但奈何HSSFWorkbook导出数据数量有限 ...
- php excel 导出图片,phpexcel 导出多张图片
phpexcel 导出图片 我在网上看了资料 都是导出一张图片,我想导出每行第一列是一个图片,如何实现,下边是一个导出的方法,我应该怎么加入哪?其他的数据都导出来了,就图片出不来,图片的路径信息保存到 ...
- excel导出图片方格居中
参考文档 Java POI excel 操作之图片导出 - 掘金 (juejin.cn) POI精确设置Excel的行高和列宽 - dts - 博客园 (cnblogs.com) Apache POI ...
- java excel 导出图片_JAVA 使用 POI 导出 EXCEL 自定义背景颜色
开发中常用表格导入和导出 Excel 是常见的功能. 在这里分享下使用 POI 导出表格的简单实现,也是为大家提供个思路吧,抛砖引玉,话不多说直接上代码. 1.项目引入 maven 依赖 <!- ...
- java实现excel导出图片
public static void toLeadPicture(SXSSFWorkbook workbook, SXSSFSheet sheet, String fileUrl, int row, ...
- thinkphp3.2.3 excel导出,下载文件,包含图片
关于导出后出错的问题 https://segmentfault.com/q/1010000005330214 https://blog.csdn.net/ohmygirl/article/detail ...
- Excel表格怎么批量导出图片将文件中的图片导出到文件夹中
这几天一直没写博文,但是为了让大山的孩子,能够像京城的富二代一样,可以开开心心公公平平地享受学习excel的权利,因此决定今天继续写,今天主要来谈谈excel图片批量导出,关于excel表格怎么批量导 ...
- POI实现EXCEL导出(resources配置路径下或者网络图片)
工作越来越忙了,很久没来更新了,刚好今天抽个小空,整理下excel导出图片的总结,希望对你有用~ 1.项目resources下创建文件夹file,将520.png图片放到文件夹下,代码如下: HSSF ...
- java导出highcharts_java实现highcharts导出图片至excel
1. 目的 通过java后台实现将前端页面的highcharts图表导出至生成的excel文件中.使用于报表页面导出类功能. 2. 说明 前端页面将图表的svg信息字符串作为参数传递 后台使用bati ...
- php导出照片,Laravel使用 Laravel Excel文件导出图片功能
Laracel 中可以使用Laravel Excel进行Excel或者PDF的导出,使用composer进行安装此差价,Laravel-Excel将PHPExcel进行封装. 其官方文档:http:/ ...
最新文章
- dataframe 拆分 分裂
- dvwa安装教程linux,Kali 2020.3安装docker和vulhub
- Zynq SOC学习笔记之设备树
- 女友刷B站流量告急,技术男友轻松搞定!
- 轻量又高效,Apache Shiro 你值得拥有!
- vue.js computedmethod
- 如何实现一个c/s模式的flv视频点播系统
- 8Linux磁盘划分、RAID
- python tkinter界面 控件位置随窗体自动调整适应_如何实现python tkinter控件随窗口变化?...
- SAP 采购订单入库——移动类型
- App推广及游戏推广,如何才能大规模起量
- 解决PyCharm安装tensorflow-cpu2.1.0导入失败问题
- 什么是java字符串_什么是java字符串
- JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(文章最后有源码)
- gerrit配置管理
- 计算机网络知识英语,计算机网络基础课程中英文简介.DOC
- 智能路灯控制器 智慧杆集控网关选型指南
- 聚观早报 |拼多多跨境电商业务正式登陆澳洲;中国加快6G网络研发
- vue项目启动时报error Expected linebreaks to be ‘LF‘ but found ‘CRLF‘ linebreak-style
- 计算机操作员绘图员,常用通用职业工种分类表.PDF