博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET操作Excel表格的整理
阅读量:6261 次
发布时间:2019-06-22

本文共 1967 字,大约阅读时间需要 6 分钟。

        首先需要引用一个COM引用: Microsoft Excel 11.0 Object Library. 在程序代码中添加命名空间Microsoft.Office.Interop.Excel的引用. 然后就可以跟Excel进行操作了.

基本的Excel对象

Application: 每个Application对象表示一个Excel程序, 在程序中每创建一个该对象就启动Excel程序的一个实例

Workbook: 每个Workbook对象表示一个Excel工作薄, 在同一个Excel程序中可以打开多个工作薄
Worksheet: 每个Worksheet对象表示一个Excle工作表, 在同一个Excel工作薄中可以打开多个工作表
Range: 每个Range对象表示Excel工作表上的一个区域, 该区域可以是一个单元格, 也可以是多个单元格的组合. 区域可以是连续的, 也可以是离散的

简单的代码实现对Excel的操作

private void button1_click(object sender, EventArgs e){   Microsoft.Office.Interop.Excel.Application app1 = new Microsoft.Office.Interop.Excel.Application();   app1.visible = true;   Workbook book1 = app1.Workbooks.Add(Type.Missing);   Wroksheet sheet1 = (Worksheet)book1.Sheets[1];   Range rng1 = sheet1.get_Range("A1", Type.Missing);   rng.Value2 = "hello";}

        这样点击按钮之后就会发现新建了一个Excel, 这个Excel里有一个表格, 在A1的单元格里显示文本hello.

Workbook book1 = app1.Workbooks.Add(Type.Missing);

        除了Add这个方法外, 如果想打开一个已经存在的表格, 并对它进行操作, 可以使用Open方法.

        获取区域值的方法, 返回的是一个Object类型的数组:

sheet1.get_Range("B2", Type.Missing);  //返回B2单元格sheet1.get_Range("A1:C10", Type.Missing);  //返回左上角A1到右下角C10区域单元格sheet1.get_Range("A1", "C10);  //和上一行效果一样(左上角A1到右下角C10区域单元格)sheet1.get_Range("A:A", Type.Missing);  //返回整个A列sheet1.get_Range("A:C", Type.Missing);  //返回A到C列sheet1.get_Range("3:3", Type.Missing);  //返回A到C列sheet1.get_Range("A1:A5, C1:C5", Type.Missing);  //返回两个独立的区域

        除了获取一个区域的值, 获得单个单元格值的方法:

Range rng1 = (Range)sheet1.Cells[1, 1];   //获取A1单元格Range rng2 = (Range)sheet1.Cells[3, "C];   //获取C3单元格Range rng3 = (Range)sheet1.Cells[2, Type.Missing];   //获取B1单元格

        Range对象除了Value2属性, 还有Value属性, 只有当涉及日期和货币格式才使用这个属性. 否则, 为保持程序简洁和一致性, 应该使用Value2属性.

        Range对象还有个只读属性: Text, 该属性虽然是Object类型的, 但所有值类型都是按文本方式进行处理的. 所以在使用这个Text属性时, 如果已经确定这个文本的数据类型时, 可以使用Parse方法把文本转变成该数据类型. 如果不能确定, 则可以使用TryParse方法.

        除此之外, Range对象中如果某个或某些单元格的值全为数字, 而我们不想按数字来处理这些值, 想把它转变成文本或是其它格式. 可以使用Range的NumberFormat属性.

        操作Excel表格, 还有个专门的控件叫做SpreedSheet控件, 不过在我做东西的时候, 想把日期格式的数据正确显示在这个控件中出现了不少问题, 最后还是舍弃了使用这个控件. 最后还是选择了比较常见的DataGridView -_-

更多资料:

转载地址:http://yqqsa.baihongyu.com/

你可能感兴趣的文章
《SolidWorks 2012中文版从入门到精通》一6.5 综合实例——斜齿圆柱齿轮
查看>>
storm集群的监控
查看>>
RHCE 6.0学习笔记-2 RHEL 6 使用光盘配置本地YUM源
查看>>
Mongodb定期备份
查看>>
Confluence 6 数据库设置
查看>>
刨根问底-struts-怎么加载配置的相应的信息
查看>>
解决mysql数据库大小写敏感问题
查看>>
jsp页面组成
查看>>
LCS记录
查看>>
C++开源跨平台类库集
查看>>
everything搜索工具小技巧
查看>>
一个 Sql语句优化的问题- STATISTICS 统计信息
查看>>
你不知道的KVO的内部实现
查看>>
转】MyEclipse10安装Log4E插件
查看>>
windows server2012r2 安装NET Framework 3.5
查看>>
[osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)
查看>>
Java遇见HTML——JSP篇之JSP基础语法
查看>>
导出一个数据库中的表中的某一条数据
查看>>
JQuery初体验
查看>>
全球顶级黑客对决AI GeekPwn2017黑客大赛看点全面曝光
查看>>