欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#插入图片到Excel表格单元格代码详解

程序员文章站 2023-09-03 18:11:07
dll文件获取及引用: 方法1:通过官网下载dll文件包,并解压。解压文件后,将bin文件夹下的spire.xls.dll文件引用到c#程序。 方法2:通过nuget网...

dll文件获取及引用:

方法1:通过官网下载dll文件包,并解压。解压文件后,将bin文件夹下的spire.xls.dll文件引用到c#程序。

方法2:通过nuget网站获取dll。

c#代码示例

using spire.xls;

using system.drawing;



namespace insertimage_xls

{

  class program

  {

    static void main(string[] args)

    {

      //创建workbook对象

      workbook workbook = new workbook(); 

      //获取第一张工作表

      worksheet sheet = workbook.worksheets[0];

      //指定列宽、行高

      sheet.columns[0].columnwidth = 50;

      sheet.rows[0].rowheight = 160;



      //加载图片,添加到指定单元格

      excelpicture picture = sheet.pictures.add(1,1, "tp.png");

      //指定图片宽度和高度

      picture.width = 300;

      picture.height = 180;



      //通过leftcolumnoffset和toprowoffset属性值设置图片在单元格中的横向、纵向对齐

      picture.leftcolumnoffset = 75;

      picture.toprowoffset = 20;



      //保存文档

      workbook.savetofile("result.xlsx", fileformat.version2013);

      system.diagnostics.process.start("result.xlsx");

    }

  }

}

图片插入效果:

C#插入图片到Excel表格单元格代码详解

扩展知识点:

c# 导入图片到excel单元格

导出excel功能时需要将数据中含有图片也导出到excel单元格中

public void insertpicture(string rangename, string picturepath, microsoft.office.interop.excel.worksheet worksheet)
    {
      microsoft.office.interop.excel.range m_objrange = worksheet.get_range(rangename, type.missing);
      m_objrange.select();

      float picleft, pictop, picwidth, picheight;    //距离左边距离,顶部距离,图片宽度、高度
      pictop = convert.tosingle(m_objrange.top);
      picwidth = convert.tosingle(m_objrange.mergearea.width);
      picheight = convert.tosingle(m_objrange.height)-10;
      picwidth = convert.tosingle(m_objrange.width)-10;
      picleft = convert.tosingle(m_objrange.left);//+ (convert.tosingle(rng.mergearea.width) - picwidth) / 2;     
         
      try
      {
        //worksheet.shapes.addpicture(picturepath, microsoft.office.core.msotristate.msofalse, microsoft.office.core.msotristate.msotrue, picleft, pictop, pictutewidth, pictureheight);
        worksheet.shapes.addpicture(picturepath, microsoft.office.core.msotristate.msofalse, microsoft.office.core.msotristate.msotrue, picleft, pictop, 90, 70);
      }
      catch
      {
      }
    }