C# Excel插入Object—OLEObjects


最近在研究数据自动化整理的技术,说白了就是通过软件去操作Excel,Word实现数据整理,文档格式整理之类的功能,有兴趣的同学可以加博主微信互相学习。
在开发过程中遇到这样一个功能,就是将一个压缩包文件导入到Excel中,于是就有了OLEObjects的使用。

OLEObjects对象 泛指工作表上所有 “OLEObject” 对象的集合

每一个 OLEObject 对象都代表一个 ActiveX 控件或者一个链接或嵌入的 OLE 对象。

Add方法 —向工作表中添加新的 OLE 对象

语法:

OLEObject Add(object ClassType, object Filename, object Link, object DisplayAsIcon, object IconFileName,object IconIndex, object IconLabel, object Left, object Top, object Width, object Height);

参数

名称 必需/可选 数据类型 说明
ClassType 可选 Variant 必须指定_ClassType_或_FileName_。 一个字符串,包含要创建的对象的程序标识符。 如果指定了 ClassType 参数,则忽略 FileName 和 Link。
FileName 可选 Variant 必须指定_ClassType_或_FileName_。 一个字符串,指定用于创建 OLE 对象的文件。
Link 可选 Variant 如果为 True,则让基于 FileName 的新 OLE 对象链接到该文件。 如果该对象未链接到文件,则该对象被创建为文件副本。 默认值为 False 。
DisplayAsIcon 可选 Variant 如果为 True,则以图标或正常图片方式显示新的 OLE 对象。 如果该参数设置为 True,则可以使用 IconFileName 和 IconIndex 来指定图标。
IconFileName 可选 Variant 一个字符串,指定要显示的图标所在的文件。 仅当 DisplayAsIcon 为 True 时,才使用该参数。 如果不指定该参数,或文件中不包含图标,则使用 OLE 类的默认图标。
IconIndex 可选 Variant 图标文件中包含的图标数目。 仅当 DisplayAsIcon 参数为 True 并且 IconFileName 参数引用包含图标的有效文件时,才使用该参数。 如果由 IconFileName 参数指定的文件中不存在具有指定索引号的图标,则使用该文件中的第一个图标。
IconLabel 可选 Variant 一个字符串,指定在图标下方显示一个标签。 仅当 DisplayAsIcon 为 True 时,才使用该参数。 如果省略该参数,或者该参数为空字符串 (""),则不显示任何标题。
Left 可选 Variant 新对象的初始坐标, 以磅为单位, 相对于工作表上单元格 A1 的左上角或图表的左上角。
Top 可选 Variant 新对象的初始坐标, 以磅为单位, 相对于工作表上第1行的顶部或图表上的图表区的顶部。
Width 可选 Variant 新对象的初始宽度 (以磅为单位)。
Height 可选 Variant 新对象的初始高度 (以磅为单位)。

参数摘自:https://docs.microsoft.com/zh-cn/office/vba/api/excel.oleobjects.add

代码如下:

     /// <summary>/// Excel插入对象[压缩包-284Log]/// </summary>/// <param name="ExcelPath">Excel Path</param>/// <param name="SheetIndex">Excel Sheet index </param>/// <param name="ObjPath">Object Path</param>public static void ExcelInsertObj(string ExcelPath,int SheetIndex,string ObjPath){Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();try{app.Visible = true;Excel.Workbook wb = app.Workbooks.Open(ExcelPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);Excel.Worksheet sht = wb.Worksheets[SheetIndex];Excel.Range rng = sht.get_Range("B2", "E5");Excel.OLEObjects objs = sht.OLEObjects();Excel.OLEObject obj = objs.Add(Filename: ObjPath,Link: false,DisplayAsIcon: true,//IconFileName: "fileName" , IconIndex: 0,IconLabel: "284Log",Left: rng.Left,Top: rng.Top,Width: rng.Width,Height: rng.Height);obj.Select();app.AlertBeforeOverwriting = false;wb.Close(XlSaveAction.xlSaveChanges, Missing.Value, Missing.Value);System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);wb = null;}catch (Exception ex){Console.WriteLine(ex.Message);}finally{app.Quit();app = null;GC.Collect();}}
  • 如有雷同,纯属巧合
  • 转载请标明出处

C# Excel插入Object相关推荐

  1. Excel插入XactiveX提示出错“不能插入对象”解决

    最近需要用VB在EXCEL表格中插入一个Qrmaker控件生成二维码,但是在操作插入控件时却显示"不能插入对象". 最初本以为是电脑上面安装了金山WPS的原因,于是把WPS删除了, ...

  2. 【C#】MySQL数据库数据导入(批量Excel插入)

    系列文章 [C#]代码模板生成工具 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673 [C#]MySQL数据库导入工具( ...

  3. Java Excel 插入图片

    在POI中有HSSFPatriarch对象,该对象为画图的顶级管理器,它的createPicture(anchor, pictureIndex)方法就能够在Excel插入一张图片.所以要在Excel中 ...

  4. POI Excel插入行,下面的行动态移动

    直接上代码 package com.ll.controller; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.po ...

  5. NPOI使用ShiftRows向excel插入行,并复制原有样式

    使用excel模板导出数据时,模板可填充的数据行有限,可通过ShiftRows插入行,如图,在第七行后插入新行,要求新行包含原有样式 插入后 首先添加npoi类库引用 /// <summary& ...

  6. python关于excel插入图片

    python关于excel插入图片功能实现,利用openpyxl进行插入 功能很简单,废话不多说直接上代码: from openpyxl import load_workbook,Workbook f ...

  7. Excel插入图片实现单击放大或缩小

    Excel插入图片实现单击放大或缩小 一.打开Excel,Alt+F11打开VBA(VBA自行安装) 二.双击ThisWorkbook,输入VBA代码 Sheet1为的工作薄1 Private Sub ...

  8. java导出excel插入图片

    首项需要的jar包有: 1.poi-3.8-20120326.jar 2.commons-codec-1.10.jar 代码:package com.demo; import java.awt.ima ...

  9. poi向excel插入图片demo

    转自:https://blog.csdn.net/chenssy/article/details/20524563 在POI中有HSSFPatriarch对象,该对象为画图的顶级管理器,它的creat ...

最新文章

  1. mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介
  2. pythontcp服务器教程_tcp服务端无线为多个客户端服务|python基础教程|python入门|python教程...
  3. 魏代汉,晋代魏,背后是士族与寒族的博弈,也是士族门阀的形成时期
  4. 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
  5. linux运维决心书!
  6. 安卓手机 Python 自动化测试
  7. run till exit from #0_华为认证hcip H13821 v2.0云服务考试真题每日一练(一)
  8. bash ./php-memcache.sh,PHP+shell脚本操作Memcached和Apache Status的实例分享
  9. 助力小程序生态发展 “小程序生态孵化社区”成立
  10. [不得不提]国外的一个silverlight for cube的商业组件
  11. 为什么模板函数的声明和实现都放在.h文件中
  12. P2046 [NOI2010]海拔
  13. 关于IEnumeratorT泛型枚举器 和 IEnumerableT
  14. 两个子数组和的差最小
  15. TouchPanel--Qcom DRM休眠唤醒通知链的注册及回调流程
  16. TeamViewer 免费许可到期的解决办法
  17. 微信直接下载app的解决方案
  18. 互联网公益陷入信任危机,智慧公益能否力挽狂澜?
  19. 万里长城这么修,可真鹅戏
  20. ToDesk for Mac v4.2.1 中文版 远程控制软件

热门文章

  1. 微创电生理递交注册:拟募资10亿 核心设备高度依赖单一供应商
  2. iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图
  3. 【呆瓜学maven】Maven介绍(创建工程项目以及下载所需要的jar包)
  4. Perl 中关于 LWP::UserAgent等模块用法
  5. code::blocks自动补全诸如socket或者其它一些库中的函数
  6. 重磅推出:2019中国开源年度报告
  7. 【本/硕毕业生】开题报告及论文指导思路和撰写事项的整理
  8. 【SearchString Algorithm Training】谭爷剪花布条
  9. 哈工大CSAPP大作业 2022
  10. C语言学习笔记(自用)(1):初识C语言