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单元格
导出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 { } }