【C#】使用COM组件操作Excel

本文详细介绍了如何在C#项目中利用Excel COM组件进行高效操作,包括引用dll、基本对象认识、工作簿与工作表的操作,以及单元格的各种设置,如颜色、字体、边框、对齐方式和数据格式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中常常会涉及到对Excel的读写,设置格式的操作,通常的情况下,我会使用开源的第三方组件NPOI,因为它高效轻便。当然,Excel的读写还有其他很多方式,这里不再一一列举。

但遇到一些稍微复杂的情况时,还得用COM组件才能完成。Excel COM组件是以接口形式向客户端提供服务的一个dll。经过一段时间的使用,想把经常使用的用法,做一下归纳总结。

!!本文不定时更新……!!

【VS中dll引用】

首先要引入相应的Office->Excel的dll。在VS中依次点击引用->添加引用->COM->Microsoft Excel xx Object Library。(安装的Office的版本不同,xx部分会不同,我电脑上安装的是Office 2019,所以是16.0。但代码写法都一样)

 如果在运行时,创建ExcelApplication报错,则将嵌入互操作类型改为false

 然后引用命名空间,当然也可以给该命名空间起一个别名:

using Excel = Microsoft.Office.Interop.Excel;

 注意,下标都是从1开始的,从1开始的,从1开始的!!

【基础知识】

要使用Excel COM组件,我们需要了解4个对象:Application, Workbook, Worksheet, Range

1. Application:  Excel实例,创建此对象,会在任务管理器中多出一个EXCEL.EXE的进程

2. WorkBook:Excel文件,相当于工作薄。

3. Worksheet:Excel文件中的工作表。

4. Range:区域块,相当于在excel中用鼠标选中一个或多个单元格。


【工作簿的操作】

  • 新建一个工作薄,并以“test.xlsx”保存至指定目录
Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = null;
workbook = xlApp.Workbooks.Add();
workbook.SaveAs(@"D:\test.xlsx");
xlApp.Quit();
xlApp = null;

此时生成的test.xlsx中有一个空白的工作表

  •  打开工作薄

往一个已经定义好的空白模板中写入数据等情况

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = null;
workbook = xlApp.Workbooks.Open(@"D:\test.xlsx");
  • 关闭工作薄
workbook.Close(SaveChanges: true);

 写文件内容有修改时,写法如上。

  •  保存工作簿的副本(另存为)
workbook.SaveCopyAs(@"D:\123.xlsx");
workbook.Close();

【工作表的操作】 

  • 打开工作薄,并获取某个工作表
Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = null;
workbook = xlApp.Workbooks.Open(filePath);//文件有绝对路径
Excel.Worksheet worksheet = workbook.Worksheets["sheetName"];//按工作表名称获取
//or
Excel.Worksheet worksheet = workbook.Worksheets[1];//按下标获取
  • 新建工作表

与在excel中操作一样,新建的工作表后,选中的工作表为刚刚新建的 

//在excel文件中处于选中状态的工作表前添加
Excel.Worksheet worksheet = workbook.Worksheets.Add();
worksheet.Name = "new sheet";
//**结果:new sheet,Sheet1**

//在指定工作表前添加
Excel.Worksheet w1 = workbook.Worksheets["Sheet1"];
Excel.Worksheet worksheet = workbook.Worksheets.Add(Before: w1);
worksheet.Name =
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值