1、开局一张图

导出来的效果就是这样。

2、环境准备

需要安装office2003

链接:https://pan.baidu.com/s/1d4DpeNKdpqNRkCaO6a64cw 
提取码:2asp

安装成功后添加如下引用:

Microsoft.Office.Tools.Excel.dll

Excel.dll

Office.dll

/// <summary>
/// 需要安装  office 2003
/// </summary>
public class InsertPictureToExcel
{public void Open(){this.Open(string.Empty);}/// <summary>/// 功能:实现Excel应用程序的打开/// </summary>/// <param name="TemplateFilePath">模板文件物理路径</param>public void Open(string TemplateFilePath){//打开对象m_objExcel = new Excel.Application();m_objExcel.Visible = false;m_objExcel.DisplayAlerts = false;//if (m_objExcel.Version != "11.0")//{//    MessageBox.Show("您的 Excel 版本不是 11.0 (Office 2003),操作可能会出现问题。");//    m_objExcel.Quit();//    return;//}m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;if (TemplateFilePath.Equals(String.Empty)){m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));}else{m_objBook = m_objBooks.Open(TemplateFilePath, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);}m_objSheets = (Excel.Sheets)m_objBook.Worksheets;m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));}public void Cells(int rowIndex, int columnIndex, string content){m_objSheet.Cells[rowIndex, columnIndex] = content;}/// <summary>/// 将图片插入到指定的单元格位置。/// 注意:图片必须是绝对物理路径/// </summary>/// <param name="RangeName">单元格名称,例如:B4</param>/// <param name="PicturePath">要插入图片的绝对路径。</param>public void InsertPicture(string RangeName, string PicturePath){m_objRange = m_objSheet.get_Range(RangeName, m_objOpt);m_objRange.Select();Excel.Pictures pics = (Excel.Pictures)m_objSheet.Pictures(m_objOpt);pics.Insert(PicturePath, m_objOpt);}/// <summary>/// 将图片插入到指定的单元格位置,并设置图片的宽度和高度。/// 注意:图片必须是绝对物理路径/// </summary>/// <param name="RangeName">单元格名称,例如:B4</param>/// <param name="PicturePath">要插入图片的绝对路径。</param>/// <param name="PictuteWidth">插入后,图片在Excel中显示的宽度。</param>/// <param name="PictureHeight">插入后,图片在Excel中显示的高度。</param>public void InsertPicture(string RangeName, string PicturePath, float PictuteWidth, float PictureHeight){m_objRange = m_objSheet.get_Range(RangeName, m_objOpt);m_objRange.Select();float PicLeft, PicTop;PicLeft = Convert.ToSingle(m_objRange.Left);PicTop = Convert.ToSingle(m_objRange.Top);//参数含义://图片路径//是否链接到文件//图片插入时是否随文档一起保存//图片在文档中的坐标位置(单位:points)//图片显示的宽度和高度(单位:points)//参数详细信息参见:http://msdn2.microsoft.com/zh-cn/library/aa221765(office.11).aspxm_objSheet.Shapes.AddPicture(PicturePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, PicLeft, PicTop, PictuteWidth, PictureHeight);}/// <summary>/// 将Excel文件保存到指定的目录,目录必须事先存在,文件名称不一定要存在。/// </summary>/// <param name="OutputFilePath">要保存成的文件的全路径。</param>public void SaveFile(string OutputFilePath){m_objBook.SaveAs(OutputFilePath, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);this.Close();}/// <summary>/// 关闭应用程序/// </summary>private void Close(){m_objBook.Close(false, m_objOpt, m_objOpt);m_objExcel.Quit();}/// <summary>/// 释放所引用的COM对象。注意:这个过程一定要执行。/// </summary>public void Dispose(){ReleaseObj(m_objSheets);ReleaseObj(m_objBook);ReleaseObj(m_objBooks);ReleaseObj(m_objExcel);System.GC.Collect();System.GC.WaitForPendingFinalizers();}/// <summary>/// 释放对象,内部调用/// </summary>/// <param name="o"></param>private void ReleaseObj(object o){try{System.Runtime.InteropServices.Marshal.ReleaseComObject(o);}catch { }finally { o = null; }}private Excel.Application m_objExcel = null;private Excel.Workbooks m_objBooks = null;private Excel._Workbook m_objBook = null;private Excel.Sheets m_objSheets = null;private Excel._Worksheet m_objSheet = null;private Excel.Range m_objRange = null;private object m_objOpt = System.Reflection.Missing.Value;}

调用方法:

public string ExportNew(BasePage input)
{float imgWidth = 300;float imgHeight = 255;var tb = GetData();if (tb.Rows.Count > 0){InsertPictureToExcel ipt = new InsertPictureToExcel();ipt.Open(DbExtensions.AppPath + "\\Template\\ExcelTemp.xls");for (int i = 0; i < tb.Rows.Count; i++){var r = tb.Rows[i];exr = r;var rn = i + 3;var cn = 0;// 写入文本信息ipt.Cells(rn, ++cn, r["c_first_code"].ToStr());// 需要图片绝对路径ipt.InsertPicture("Y" + rn, @"D:\img\1.jpg", imgWidth, imgHeight);}var fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".xls";var bPath = "ExcelFile\\" + DateTime.Now.ToString("yyyy-MM-dd");var path = DbExtensions.AppPath + "\\" + bPath;if (!Directory.Exists(path)){Directory.CreateDirectory(path);}ipt.SaveFile(path + "\\" + fileName);ipt.Dispose();return DbExtensions.HOST + bPath + "\\" + fileName;}return string.Empty;
}

C#导出图片到EXCEL相关推荐

  1. java使用POI导出图片到Excel

    个人学习记录 目录 个人学习记录 1. 使用POI导出图片到Excel中,Excel格式为xls 2. 使用POI导出图片到Excel中,Excel格式为xlsx,图片设置边距 3. 获取图片,生成B ...

  2. java导出highcharts_java实现highcharts导出图片至excel

    1. 目的 通过java后台实现将前端页面的highcharts图表导出至生成的excel文件中.使用于报表页面导出类功能. 2. 说明 前端页面将图表的svg信息字符串作为参数传递 后台使用bati ...

  3. easypoi利用模板导出图片到Excel;解决easypoi导出图片到合并单元格单元格被拉伸的问题

    easypoi的封装是非常好的,用起来很简单. 官方教程地址:http://easypoi.mydoc.io/ 但是在使用模板导出图片到合并单元格时出问题了,官网找了好几遍没找到方案. 其实官方早就实 ...

  4. html 图片导出excel,用JavaScript导出图片到Excel

    将页面中指定表格的数据导入到Excel中 function AutomateExcel() { var oExcel = new ActiveXObject("Excel.Applicati ...

  5. php导出图片到excel

    很变态,图片非要导入excel,这么大个,我只能1000条导出一次,很恶心.导出好多次,才全部倒出到excel. set_time_limit(0);ini_set('memory_limit', ' ...

  6. Java使用POI导出图片的Excel

    文章目录 依赖 导包 测试类 打开查看 结合实际项目使用 依赖 <dependency><groupId>org.apache.poi</groupId><a ...

  7. JavaScript导出图片和数据到Excel

    JavaScript导出图片和数据到Excel 以下方法可以利用json数据将图片地址生成图片导出到Excel,同样也可以将数据导出到Excel.解决网上许多方法关于导出图片到Excel却无法让图片在 ...

  8. html图片excel路径,jsp方式导出Excel能不能导出图片_html/css_WEB-ITnose

    现在采用的是在JSP中设置头文件 response.setContentType("application/vnd.ms-excel;charset=UTF-8"); respon ...

  9. php下载图片excel过大,PHPExcel导出图片大小设置问题

    使用PHPExcel导出图片到excel的时候,图片大小只会按照一定的比例显示,不能按照自己的要求显示大小,不知道怎么解决,有哪位大神帮下我吗? $objDrawing = new PHPExcel_ ...

  10. Excel表格怎么批量导出图片将文件中的图片导出到文件夹中

    这几天一直没写博文,但是为了让大山的孩子,能够像京城的富二代一样,可以开开心心公公平平地享受学习excel的权利,因此决定今天继续写,今天主要来谈谈excel图片批量导出,关于excel表格怎么批量导 ...

最新文章

  1. 获取其他进程中ListView的文本
  2. Vue -渐进式JavaScript框架
  3. 安卓如何限制横屏和竖屏
  4. 13.SpringMVC和Spring集成(一) 14.SpringMVC和Spring集成(二)
  5. mysql事务操作——transaction
  6. maven install出错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (d
  7. 一个比较笨的全文搜索的例子(分析结构用)-模糊查找
  8. 一文弄懂AOP各种概念
  9. 1.22 OSS旧IP下线公告
  10. 打开pdf文件提示文件过大_如何把pdf文件进行分割?拆分pdf文件的方法分享
  11. 《未来世界的幸存者》笔记
  12. 速卖通AE平台+聚石塔+奇门 完整教程V2
  13. 格物、致知、正心、诚意、修身、齐家、治国、平天下
  14. 强智教务系统验证码识别 OpenCV
  15. 分享一个精灵盛典辅助工具挂机方案
  16. linux mysql 超级用户_Linux下MySQL忘记超级用户口令的解决办法linux操作系统 -电脑资料...
  17. 服务器导出excel文档,服务器导出excel功能配置
  18. osgearth]样式表style中参数总结(OE官方文档翻译)
  19. SSM框架与Springboot框架的区别
  20. LPspice 电路仿真软件

热门文章

  1. supercharge快充_IQOO、小米快充技术对比,27W快充和44W快充,到底哪家强
  2. cf服务器显示空白,cf空白名(cf显示空白的生僻字)
  3. 发动机启动计算机,不自检直接启动伤车?看完发动机电脑自检原理你就明白了...
  4. Linux完美学习笔记
  5. 分词统计(四)唐宋元诗人吟诗作词的时候,最偏爱哪些词语呢?(附上AI写的1000句诗!)
  6. 各种加密模式在TLS协议中的运用 2 (AEAD:CCM模式)
  7. std::binary_serach, std::upper_bound以及std::lower_bound
  8. 美国密歇根州立大学计算机专业,密歇根州立大学计算机科学硕士排名第66(2020年TFE Times排名)...
  9. SEO理论实践的10大误区
  10. ORACLE RAC安装问题解决记录(5)- 未设置cluster_database导致 ORA-01102 cannot mount database in EXCLUSIVE mode