c#在Excel指定单元格中插入图片

方法一:

/// 将图片插入到指定的单元格位置,并设置图片的宽度和高度。
/// 注意:图片必须是绝对物理路径
/// </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);
}
}

时间: 2024-08-07 04:05:51

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

POI向Excel的单元格中写入图片

HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 在POI中有HSSFPatriarch对象,该对象为画图的顶级管理器,它的createPicture(anchor, pictureIndex)方法就能够在Excel插入一张图片. 针对.xls文件导出图片 public class ExcelImageTest { public static void main(Strin

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

准备工作: 1.首先需要提供一个word模板,并且标记好您要插入书签的位置,定义书签的命名.如图 2.模拟您要插入的Excel原始数据和图表对象 插入代码如下: Private Sub CommandButton1_Click() Dim App, WrdDoc, Mypath As String On Error Resume Next '定义原始模板的储存路径,默认和excel在同一路径 Mypath = ThisWorkbook.Path & "\模板.doc" '用Se

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

/// <summary> /// 将指定字符串写入指定单元格中 /// </summary> /// <param name="data">要写入的数据源</param> /// <param name="sheetName">工作表名称(全路径+EXCEL表名称)</param> /// <param name="row">第几行</param>

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

using System; using System.Collections.Generic; using System.Text; //先添加引用 using Microsoft.Office.Interop.Excel; using System.IO; using System.Reflection;   namespace SighExcel {     public class Sign     {         /// <summary>         /// 对Excel指定

Excel 2010单元格中设置表头

大家在做报表的时候,似乎都遇到过这样的问题,就是在一个单元格中如何设置表头: 其中包括一条斜杠的,两条斜杠的,N 条斜杠的,很多斜杠似乎没什么用.如图: 不知道C1能不能用到,这里只是举个例子. 首先单条斜杠的表头如何制作,其实非常简单,就是设置单元格属性中的边框,然后添加斜向斜杠即可.如图: 很简单,然后就可以输入数据,输入数据的时候大家要注意,首先单元格数据位置要设置为靠上,然后用空格和手动换行来控制(alt+enter).效果如图: 非常简单.下面介绍三条斜线的表头如何实现,三条斜线用边框

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

先看效果图 代码 //创建一个工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); //创建一个sheet ISheet sheet1 = workbook.CreateSheet("sheet1"); // 设置列宽,excel列宽每个像素是1/256 sheet1.SetColumnWidth(0, 18 * 256); sheet1.SetColumnWidth(1, 18 * 256); IRow rowHeader = sheet1.

poi 生成word 表格,并向表格单元格中插入多个图片

接这上一篇,导入数据,也要完整导出来.话不多说,直接上代码. 效果图 //根据实体对象 ,生成XWPFDocument public static XWPFDocument exportDataInfoWord(List<DataInfoEntity> list) throws NoSuchFieldException,IllegalAccessException { MyXWPFDocument doc = new MyXWPFDocument(); XWPFTable table = do

poi 读取word 遍历表格和单元格中的图片

背景 项目需要解析word表格 需要批量导入系统,并保存每行信息到数据库 并且要保存word中的图片, 并保持每条信息和图片的对应关系 一行数据可能有多条图片 解决办法 没有找到现成的代码,怎么办呐?看源码吧 分享快乐 给出代码 package com.util; import org.apache.poi.xwpf.usermodel.*; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgfr

excel截取单元格中部分内容

这几天参加导数据,还真是个磨人的活呀,大量的数据导出.修改,甚至都觉得这工作实在是无聊,就是占用时间.其中有个字段是起始周(格式:01-17)要把它分成两个字段,开始周(01)和结束周(17). 明显一个个改是不科学的,要批量获取就要用到函数:excel中截取字符串函数包括Left,Right,Mid函数等 格式:    left(text,num_chars) 参数1:要截取的字符串:参数2:从左起截取几位 right(text,num_chars) Mid(text,start_num,nu