关键在于第四个对象
来源:互联网 发布:网络歌曲改编歌词 编辑:程序博客网 时间:2024/06/06 19:43
我们想为用户提供一些数据,考虑再三, 大家认为对于用户(人,而非机器)的可读性, Excel文件要好一些。
因为相比csv,xml等文件, Excel中我们可以运用自动筛选, 窗口锁定, 还可以控制背景颜色, 前景颜色, 字体, 网格等等…
业务逻辑并不复杂, 文件的内容和格式也比较固定,所以大家决定直接拿C#去创建这些文件。
于是一搜索,里面包含了这些主题的代码示例, 示例很详细, 编译可直接运行。
为了理解上面这些代码需要理解一下Excel的对象模型,
里面介绍了4个核心对象:
前三个对象比较好理解, 关键在于第四个对象:Range.
起初我以为更改一些单元格的字体颜色格式等等的, 是需要通过Cell这个对象来做。
看完了之后才发现, 这些操作其实都是通过Range来完成的。
还包括和并单元格, 设置网格线等等, 甚至读取和设置一个单元格的值,都可以通过Range来完成,
所以基本上当我们操作excel的时候, 我们最经常的就是和Range对象打交道, 而很少使用Cell等对象。
如果有什么需求不知道怎么实现,
建议可以先到Range对象里面翻一翻, 看看msdn上Range对象的Members,Methods,Properties的相关文档。
还有一点要补充的是:
不仅仅是C#, 还包括其他语言的Excel API, 都是对Excel对象模型的直接模拟和包装。不过Java,Ruby等等。
也就是说, 其他语言的Excel API也都会有上面那四个主要对象, 而且也都会以近乎相同的方式, 干着差不多的事儿。
接下来想写一写关于Missing.Value的事儿
对于前面给出的,创建Excel表的例子的代码, 转载如下:
这段代码中,很多函数调用都传递了这个参数:
object misValue = System.Reflection.Missing.Value;
简单的说就是:
当我想以一些参数的默认值来调用一些dll中的方法的, 我们在方法调用中忽略掉这些参数也不对,
我们用null传递给这些参数还不对,
这时我们便可以给这些参数赋值以Missing.Value来告诉运行时环境, 用这个参数的默认值帮我运行吧。
对于这段代码还有一个需要注意的问题:
注意Application,Workbook,Worksheet这三个对象的清理工作
该保存的保存, 该close的close, 该quit的quit, 最后, 他们还都应该被release
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1]
xlWorkBook.SaveAs("csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show("Excel file created , you can find the file c:\\csharp-Excel.xls");
}
- 关键在于第四个对象
- 第四个
- 面向对象的六大原则(原则都是唬人 关键在于理解面向对象)
- 【OC学习-26】对象的浅拷贝和深拷贝——关键在于属性是否可被拷贝
- 中小企业成败关键在于老板
- 学习的关键在于总结
- 创业不难 关键在于坚持
- 企业要做大做强,关键在于人才
- 执行力的关键在于中层,成败的关键在于细节
- 移动营销的关键在于哪里
- 迈向成功的关键在于执行
- poj2709 Painter(关键在于理解题意)
- 第四个“回”字
- 求链表倒数第四个元素
- 第四个罗汉完成截图
- 第四个html网页(链接)
- 上班第四个星期
- 第四个次上机
- 第一次
- C#的基本语法
- 科学家揭示真正的“休息模式”
- System.Single
- 广东工业大学 数据结构实验报告 题目: 稀疏矩阵
- 关键在于第四个对象
- hdu 2043 密码 20140728.cpp
- 各种排序的实现:希尔 归并 堆排 快排
- Dom编程(Window 对象)
- HDU--3605 Escape (多重匹配)
- poj 2724 Purifying Machine 二分图最大匹配
- IOS调用系统震动和系统声音
- HBase Capacity Planning
- 大数据公司实践零售O2O:打通线上线下,全触点大会员