热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.NET操作Excel表格的整理

首先需要引用一个COM引用:MicrosoftExcel11.0ObjectLibrary.在程序代码中添加命名空间Microsoft.Office.Interop.Excel的引

        首先需要引用一个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://support.microsoft.com/kb/302084/en-us



推荐阅读
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
author-avatar
VI_宁小豆2502874431
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有