方法一:

/// 将图片插入到指定的单元格位置,并设置图片的宽度和高度。
/// 注意:图片必须是绝对物理路径
/// </summary>
/// <param name="RangeName">单元格名称,例如:B4</param>
/// <param name="PicturePath">要插入图片的绝对路径。</param>
public void InsertPicture(string RangeName, Excel._Worksheet sheet, string PicturePath)
{
 Excel.Range rng = (Excel.Range)sheet.get_Range(RangeName, Type.Missing);
rng.Select();
float PicLeft, PicTop, PicWidth, PicHeight;    //距离左边距离,顶部距离,图片宽度、高度
PicTop = Convert.ToSingle(rng.Top) ;
PicWidth = Convert.ToSingle(rng.MergeArea.Width);
PicHeight = Convert.ToSingle(rng.Height);
PicWidth = Convert.ToSingle(rng.Width);
PicLeft = Convert.ToSingle(rng.Left);//+ (Convert.ToSingle(rng.MergeArea.Width) - PicWidth) / 2;
try
{
Excel.Pictures pics = (Excel.Pictures)sheet.Pictures(Type.Missing);
pics.Insert(PicturePath, Type.Missing);
pics.Left = (double)rng.Left;
pics.Top = (double)rng.Top;
pics.Width = (double)rng.Width;
pics.Height = (double)rng.Height;

}
catch
{
}
//sheet.Shapes.AddPicture(PicturePath, Microsoft.Office.Core.MsoTriState.msoFalse,
// Microsoft.Office.Core.MsoTriState.msoTrue, PicLeft, PicTop, PicWidth, PicHeight);
}

如果是要在某个区域插入,改区域没有命名的话,直接传入选中区域

Cell1 = SourceSheet.Cells[第几行, 第几列];
Cell2 = SourceSheet.Cells[Row , Column];

SourceRange = SourceSheet.get_Range(Cell1, Cell2);

然后把上面的这句去掉 Excel.Range rng = (Excel.Range)sheet.get_Range(RangeName, Type.Missing);

把rng换成SourceRange

方法二:

sheet.Shapes.AddPicture(。。。。。)

/// 将图片插入到指定的单元格位置,并设置图片的宽度和高度。
/// 注意:图片必须是绝对物理路径
/// </summary>
/// <param name="rng">Excel单元格选中的区域</param>
/// <param name="PicturePath">要插入图片的绝对路径。</param>
public void InsertPicture(Excel.Range rng, Excel._Worksheet sheet, string PicturePath)
{
rng.Select();
float PicLeft, PicTop, PicWidth, PicHeight;
try
{
PicLeft = Convert.ToSingle(rng.Left);
PicTop = Convert.ToSingle(rng.Top);
PicWidth = Convert.ToSingle(rng.Width);
PicHeight = Convert.ToSingle(rng.Height);

  //参数含义:
      //图片路径
      //是否链接到文件
      //图片插入时是否随文档一起保存
      //图片在文档中的坐标位置 坐标
      //图片显示的宽度和高度
sheet.Shapes.AddPicture(PicturePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, PicLeft, PicTop, PicWidth, PicHeight);

}
catch(Exception ex)
{
MessageBox.Show("错误:" + ex.Message);
}
}

c#在Excel指定单元格中插入图片的更多相关文章

  1. 如何在excel单元格中插入图片批注

    在excel单元格中插入图片批注的方法: 1.选定要插入图片的单元格,然后右键选择插入批注. 2.然后会插入一个批注框,为了不影响图片效果,可以将批注文字都删除.然后鼠标移动到批注框边角再右键. 3. ...

  2. 使用VBA将Excel指定单元格数据、字符串或者图表对象插入到Word模板指定书签处

    准备工作: 1.首先需要提供一个word模板,并且标记好您要插入书签的位置,定义书签的命名.如图 2.模拟您要插入的Excel原始数据和图表对象 插入代码如下: Private Sub Command ...

  3. C#修改 Excel指定单元格的值

    /// <summary> /// 将指定字符串写入指定单元格中 /// </summary> /// <param name="data">要 ...

  4. EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字

    EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字 Function 求数字和字母(对象 As String) '在文本与数字混杂中提取数字和字母   Dim myReg    ...

  5. C#实现对EXCEL指定单元格进行操作

    using System; using System.Collections.Generic; using System.Text; using Microsoft.Office.Interop.Ex ...

  6. NPOI 在指定单元格导入导出图片

    NPOI 在指定单元格导入导出图片 Intro 我维护了一个 NPOI 的扩展,主要用来导入导出 Excel 数据,最近有网友提出了导入 Excel 的时候解析图片的需求,于是就有了本文的探索 导入E ...

  7. Excel 2010 如何在Excel的单元格中加入下拉选项

    http://jingyan.baidu.com/article/03b2f78c4ba8a05ea237ae95.html 第一步:打开excel文档,选中需加入下拉选项的单元格.   第二步:点击 ...

  8. [EXCEL] 在单元格中自动输入时间和日期

    选中需输入的单元格,直接按下“Ctrl+:”组合键可输入当前日期:如果直接按下“Ctrl+Shift+:”组合键即可输入当前时间:当然也可以在单元格中先输入其他文字然后再按以上组合键,如先输入“当前时 ...

  9. NPOI插入图片到excel指定单元格

    先看效果图 下载NPOI组件(2.0以上支持.xlsx和.xls的excel,2.0以下只支持.xls) NPOI下载官网http://npoi.codeplex.com 下载解压,里面有个dotne ...

随机推荐

  1. 一、linux 内核介绍

    参考文档: linux 内核剖析:https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 1.1 linux 内核历史 在 20 世纪 ...

  2. plsql 根据sid连接oracle

    ORCL73 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.73)(PORT = 152 ...

  3. pyqt5-QWidget-窗口状态(最大化最小化等)

    setWindowState(state)          #设置窗口状态 Qt.WindowNoState  无状态-正常状态 Qt.WindowMinimized     最小化 Qt.Wind ...

  4. Python学习之json序列化

    一.什么是序列化 在我们存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式.这个过程叫序列化,不同的序列化结果也不同,但目的是一样的,都是为了存储和传输 在 ...

  5. flask的基础认识

    刚开始学习flask基础知识,有了一点点的认识,所以在此大概写一下自己的理解,详细步骤和功能在代码段介绍: from flask import Flask,render_template,reques ...

  6. Java基础_0305:简单Java类

    简单Java类 简单Java类是一种在实际开发之中使用最多的类的定义形式,在简单Java类中包含有类.对象.构造方法.private封装等核心概念的使用,而对于简单Java类首先给出如下的基本开发要求 ...

  7. Leetcode#118. Pascal's Triangle(杨辉三角)

    题目描述 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], [1,2, ...

  8. hydra 使用总结

    参考链接: http://blog.csdn.net/MarshalEagle/article/details/51896083 https://www.waitalone.cn/hydra-v8-w ...

  9. MySql cmd下的学习笔记 —— 有关常用函数的介绍(数学函数,聚合函数等等)

    (一)数学函数 abs(x)              返回x的绝对值 bin(x)               返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x)      ...

  10. list补充,append()、extend()、insert()、remove()、del()、pop()、分片

    1.添加 append(object),是指在列表的末尾添加一个元素. >>> arr = [1,2,'a','你好',[11,22,33]] >>> arr [1 ...