C#操作Excel一些知识

2013年8月8日 由 Creater 留言 »

以下知识点仅为本人阅读MSDN所了解,所以正确性应该可以保证,但是不排除一些理解错误。

1.首先是添加Excel的dll,在COM里找。
2.一个操作Excel的应用程序应该有一个 Excel.Application;一个Excel.Application应该有Excel.Workbooks工作薄集合;一个Excel.Workbooks至少有一个Excel.Workbook工作薄;一个Excel.Workbook至少有一个Excel.Worksheet工作表。我们一般就是对工作表操作。
3.Excel.Workbooks使用Open来打开一个或者多个excel文件,但是一般工作薄取当前活跃的工作薄(Excel.Workbook excelBook = excel.ActiveWorkbook)。
4.工作表的获取,可以两种方式,一种通过序号(Excel.Worksheet excelSheet = (Excel.Worksheet)excelBook.Sheets[1];);一种通过当前活跃的工作表属性获取(Excel.Worksheet excelSheet = (Excel.Worksheet)excelBook.ActiveSheet;)。
5.修改工作表的属性,直接通过sheet,比如修改表名字( excelSheet.Name = “数据保存”;)。
6.单个excel表格的获取和修改,之间通过Cells来操作(excelSheet.Cells[4,1] = 123).
7.单个excel表格的属性,也是通过Cells来操作,比如设置字体(excelSheet.Cells.Font.Name = “Verdana”;),设置字体大小(excelSheet.Cells.Font.Size = 14;),加粗(excelSheet.Cells.Font.Bold = true;)。
8.多个excel单元格的获取。Range对象,表示一个范围或者一个区域,get_Range第一个参数不能为missing。
比如获取一个单元格

range = excelSheet.get_Range("A15", missing);

多个连续单元格(长方形区域)

range = excelSheet.get_Range("A15:E25", missing); == range = excelSheet.get_Range("A15", “E25”);

某行或者某列
比如第3列

range = (Excel.Range)excelSheet.Columns[3, Type.Missing];

比如第5行

range = (Excel.Range)excelSheet.Rows[5, missing];

比如3-5行

range = (Excel.Range)excelSheet.Rows["3:5", missing];

9.对以上Range区域,可以继续使用Cells来访问了。
10.访问不仅如此,各种属性设置也很多,还是看手册吧。
11.资源的释放与避免程序退出后,ecxel进程仍旧存在。

            excel.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
            excel = null;
            System.GC.Collect();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet);
            excelSheet = null;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelBook);
            excelBook = null;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelBooks);
            excelBooks = null;
广告位

发表评论

你必须 登陆 方可发表评论.