C#Excel插⼊Object
C# Excel插⼊Object—
最近在研究数据⾃动化整理的技术,说⽩了就是通过软件去操作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,则可以使⽤
getsavefilenameIconFileName 和 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新对象的初始⾼度 (以磅为单位)。
参数摘⾃:
代码如下:
/// <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 = _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();
}
}
如有雷同,纯属巧合
转载请标明出处

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。