protected void btgua_Click(object sender, EventArgs e)
{
DataTable dt = ds.Tables[0];
if (dt != null)
{
#region 操作excel
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
xlWorkBook = new Microsoft.Office.Interop.Excel.Application().Workbooks.Add(Type.Missing);
xlWorkBook.Application.Visible = false;
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Sheets[1];

//设置标题

xlWorkSheet.Cells[1, 1] = "发送内容";
xlWorkSheet.Cells[1, 2] = "发送时间";
xlWorkSheet.Cells[1, 3] = "发送图片";
//设置宽度
((Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[1, 2]).ColumnWidth = 15;
//设置字体
xlWorkSheet.Cells.Font.Size = 12;
#region 为excel赋值
for (int i = 0; i < dt.Rows.Count; i++)
{
//为单元格赋值。
xlWorkSheet.Cells[i + 2, 1] = dt.Rows[i]["SendInfo"].ToString();
xlWorkSheet.Cells[i + 2, 2] = dt.Rows[i]["SendTime"].ToString();
#region

//可以直接取图片的地址
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i]["Temp1"].ToString()))
{
string filename = Server.MapPath("upload/nianhuo/") + dt.Rows[i]["Temp1"].ToString();
#endregion
int rangeindex = i + 2;
string rangename = "C" + rangeindex;

Microsoft.Office.Interop.Excel.Range range = xlWorkSheet.get_Range(rangename, Type.Missing);

range.Select();
/
float PicLeft, PicTop, PicWidth, PicHeight;    //距离左边距离,顶部距离,图片宽度、高度
PicTop = Convert.ToSingle(range.Top);
PicWidth = Convert.ToSingle(range.MergeArea.Width);
PicHeight = Convert.ToSingle(range.Height);
PicWidth = Convert.ToSingle(range.Width);
PicLeft = Convert.ToSingle(range.Left);

Microsoft.Office.Interop.Excel.Pictures pict = (Microsoft.Office.Interop.Excel.Pictures)xlWorkSheet.Pictures(Type.Missing);
if (filename.IndexOf(".") > 0)
{
if (System.IO.File.Exists(filename))
{
// pict.Insert(filename, Type.Missing);//显示原图 重叠在一起
xlWorkSheet.Shapes.AddPicture(filename, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, PicLeft, PicTop, PicWidth, PicHeight);//指定位置显示小图
}
}
}
// ActiveWorkbook

}
#endregion
#region 保存excel文件
Random myrand= new Random();
string filenamess = System.DateTime.Now.ToString("yyyyMMddhhMMss") + myrand.Next(0, 100);
string filePath = Server.MapPath("excel")+@"\" +filenamess+".xls";
xlWorkBook.SaveAs(filePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
xlWorkBook.Application.Quit();
xlWorkSheet = null;
xlWorkBook = null;
GC.Collect();
System.GC.WaitForPendingFinalizers();
#endregion
#endregion

#region 导出到客户端
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filenamess, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "Application/excel";
Response.WriteFile(filePath);
Response.End();
#endregion
KillProcessexcel("EXCEL");

}

}
#region 杀死进程
private void KillProcessexcel(string processName)
{ //获得进程对象,以用来操作
System.Diagnostics.Process myproc = new System.Diagnostics.Process();
//得到所有打开的进程
try
{
//获得需要杀死的进程名
foreach (Process thisproc in Process.GetProcessesByName(processName))
{ //立即杀死进程
thisproc.Kill();
}
}
catch (Exception Exc)
{
throw new Exception("", Exc);
}
}
#endregion

using System.Reflection;
using System.Diagnostics;

using Microsoft.Office.Interop.Excel;

Using Office;

转载于:https://www.cnblogs.com/codeloves/p/3526986.html

asp.net 导出excel带图片相关推荐

  1. java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc

    JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...

  2. POI 导出Excel 带图片导出 使用XSSFWorkbook

    参考链接:POI导出图片到Excel不生效 (2007以上版本)_rj_han的博客-CSDN博客 //数据源 查询库 List<FormMt> mtList = formMtMapper ...

  3. nopi 导出excel 带图片

    HSSFWorkbook hssfworkbook = new HSSFWorkbook(); var sheet1 = hssfworkbook.CreateSheet("第一个Sheet ...

  4. Hutool导出excel带前台Base64图片

    Hutool导出excel带前台Base64图片,hutool并没有封装具体方法,需要自己手动插入. @Data public class PicDto {private String chartBa ...

  5. springboot + 若依 ruoyi + easypoi excel的导入导出(带图片)

    springboot + 若依 ruoyi + easypoi excel的导入导出(带图片) 一.官方文档 gitee地址 官方文档 二.快速开始 1.导入 引入依赖 <dependency& ...

  6. 【译】Asp.Net 导出 Excel 数据的9种方案

    简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website table 等多钟格式的文档.它具备自动识别行号,字符,格式化数字等功能,例如: ...

  7. POI导出EXCEL带水印 以及单元格格式设置

    客户提个需求,需要将报表导出 excel带水印 和 pdf带水印 2个版本. 做的时候连excel本身怎么带水印都不知道,更不用说用java了.后来在网上搜到了excel添加水印的2个方法. 1.艺术 ...

  8. POI 导出excel带小数点的数字格式显示不对解决方法

    POI 导出excel带小数点的数字格式显示不对解决方法 参考文章: (1)POI 导出excel带小数点的数字格式显示不对解决方法 (2)https://www.cnblogs.com/firstd ...

  9. asp.net导出excel示例代码

    asp.net导出excel示例代码 asp.net导出excel的简单方法. excel的操作,最常用的就是导出和导入. 本例使用NPOI实现. 代码:/// <summary>     ...

最新文章

  1. android 音乐播放器中播放模式的设计
  2. linux下动态库(*.so)的路径问题
  3. vue是什么_什么是VUE?vue有什么作用?
  4. Python超越Java语言,跃居世界编程语言第2位了!你却还在犹豫学不学Python?
  5. oracle sql 分区查询语句_oracle11g 表分区后的查询语句如何知道是否进行了全表扫描...
  6. Linux 下用来查询安装包信息的RPM选项
  7. CodeSmith终极玩法
  8. pyqt 取鼠标处文字_爱剪辑:炫彩的动态标题文字特效,这招让视频片头LOGO更酷炫...
  9. 使用QHttp与C#编写的服务端交互(编译环境mingw)
  10. pandas库基础笔记
  11. python绘图 条形图 直方图 饼图 箱型图 误差图 多图绘制 图表注释 三维图形
  12. 【python|多进程】打印进度条
  13. html%3ca%3e标签改字体颜色,HTML URL Encoding 参考
  14. 高通CSR8670蓝牙音频芯片怎么样?CSR8670处理器参数介绍
  15. linux系统软路由软件,Linux中增加软路由的三种方法
  16. Altium Designer 19.1.18 - 隐藏某一个网络的飞线
  17. ios sdk 穿山甲_iOS 穿山甲广告 SDK 的使用
  18. android 读build.prop,Android build.prop简介
  19. Linux中的0.0.0.0和 ::
  20. jenkins自动化_通过Jenkins自动化PSR合规性

热门文章

  1. string 类型详解
  2. OpenCV角点检测之Harris角点检测
  3. php chilkat.certstore,angularjs实现冒泡排序算法的可视化
  4. 贴片按键开关_轻触开关的常用类型和规格型号
  5. 004_Bean标签
  6. r语言electricity数据集_R语言学习-数据集
  7. Android WebView 和 javaScript的互相调用(三)
  8. python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器
  9. python 错误代码_PYTHON错误代码及解决办法
  10. java 顶层类_Javase之集合体系之(1)集合顶层类Collection与其迭代器知识