C# Excel插入Object
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相关推荐
- Excel插入XactiveX提示出错“不能插入对象”解决
最近需要用VB在EXCEL表格中插入一个Qrmaker控件生成二维码,但是在操作插入控件时却显示"不能插入对象". 最初本以为是电脑上面安装了金山WPS的原因,于是把WPS删除了, ...
- 【C#】MySQL数据库数据导入(批量Excel插入)
系列文章 [C#]代码模板生成工具 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673 [C#]MySQL数据库导入工具( ...
- Java Excel 插入图片
在POI中有HSSFPatriarch对象,该对象为画图的顶级管理器,它的createPicture(anchor, pictureIndex)方法就能够在Excel插入一张图片.所以要在Excel中 ...
- POI Excel插入行,下面的行动态移动
直接上代码 package com.ll.controller; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.po ...
- NPOI使用ShiftRows向excel插入行,并复制原有样式
使用excel模板导出数据时,模板可填充的数据行有限,可通过ShiftRows插入行,如图,在第七行后插入新行,要求新行包含原有样式 插入后 首先添加npoi类库引用 /// <summary& ...
- python关于excel插入图片
python关于excel插入图片功能实现,利用openpyxl进行插入 功能很简单,废话不多说直接上代码: from openpyxl import load_workbook,Workbook f ...
- Excel插入图片实现单击放大或缩小
Excel插入图片实现单击放大或缩小 一.打开Excel,Alt+F11打开VBA(VBA自行安装) 二.双击ThisWorkbook,输入VBA代码 Sheet1为的工作薄1 Private Sub ...
- java导出excel插入图片
首项需要的jar包有: 1.poi-3.8-20120326.jar 2.commons-codec-1.10.jar 代码:package com.demo; import java.awt.ima ...
- poi向excel插入图片demo
转自:https://blog.csdn.net/chenssy/article/details/20524563 在POI中有HSSFPatriarch对象,该对象为画图的顶级管理器,它的creat ...
最新文章
- mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介
- pythontcp服务器教程_tcp服务端无线为多个客户端服务|python基础教程|python入门|python教程...
- 魏代汉,晋代魏,背后是士族与寒族的博弈,也是士族门阀的形成时期
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
- linux运维决心书!
- 安卓手机 Python 自动化测试
- run till exit from #0_华为认证hcip H13821 v2.0云服务考试真题每日一练(一)
- bash ./php-memcache.sh,PHP+shell脚本操作Memcached和Apache Status的实例分享
- 助力小程序生态发展 “小程序生态孵化社区”成立
- [不得不提]国外的一个silverlight for cube的商业组件
- 为什么模板函数的声明和实现都放在.h文件中
- P2046 [NOI2010]海拔
- 关于IEnumeratorT泛型枚举器 和 IEnumerableT
- 两个子数组和的差最小
- TouchPanel--Qcom DRM休眠唤醒通知链的注册及回调流程
- TeamViewer 免费许可到期的解决办法
- 微信直接下载app的解决方案
- 互联网公益陷入信任危机,智慧公益能否力挽狂澜?
- 万里长城这么修,可真鹅戏
- ToDesk for Mac v4.2.1 中文版 远程控制软件
热门文章
- 微创电生理递交注册:拟募资10亿 核心设备高度依赖单一供应商
- iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图
- 【呆瓜学maven】Maven介绍(创建工程项目以及下载所需要的jar包)
- Perl 中关于 LWP::UserAgent等模块用法
- code::blocks自动补全诸如socket或者其它一些库中的函数
- 重磅推出:2019中国开源年度报告
- 【本/硕毕业生】开题报告及论文指导思路和撰写事项的整理
- 【SearchString Algorithm Training】谭爷剪花布条
- 哈工大CSAPP大作业 2022
- C语言学习笔记(自用)(1):初识C语言