1使用C#操作MS-Excel表格COM使用C#操作MS-Excel表格
  2使用C#操作MS-Excel表格COM    
  3使用C#操作MS-Excel表格COM     最近用C#写了一个有限元的计算程序,其中涉及到大量数据的输入输出问题。由于其中数据不仅量大,而且数据项比较杂,使用一般的txt和dat文件操作起来比较麻烦,不直观,不便于手动修改,而且不数据文件页不具有通用性,于是想到使用界面友好的Excel电子表格来编写数据文件,通过查阅相关文档,尝试了一下,发现效果还不错。其使用方法如下:
  4使用C#操作MS-Excel表格COM 
  5使用C#操作MS-Excel表格COM1.添加引用
  6使用C#操作MS-Excel表格COM     使用Visual Studio .net 添加两个COM组件:
  7使用C#操作MS-Excel表格COM     Microsoft Excel 12.0 Object Library       
  8使用C#操作MS-Excel表格COM     Microsoft Office 12.0 Object Library
  9使用C#操作MS-Excel表格COM 
 10使用C#操作MS-Excel表格COM2.添加命名空间:
 11使用C#操作MS-Excel表格COM     using Microsoft.Office.Interop.Excel ;
 12使用C#操作MS-Excel表格COM     using Microsoft.Office.Core;
 13使用C#操作MS-Excel表格COM 
 14使用C#操作MS-Excel表格COM3.用到的一些基本对象和方法,属性:
 15使用C#操作MS-Excel表格COM   //创建Excel应用程序对象
 16使用C#操作MS-Excel表格COM   Application xlApp = new Application();
 17使用C#操作MS-Excel表格COM 
 18使用C#操作MS-Excel表格COM   //获取工作簿集合
 19使用C#操作MS-Excel表格COM   Workbooks xlWorkbooks = xlApp.Workbooks;
 20使用C#操作MS-Excel表格COM
 21使用C#操作MS-Excel表格COM   Workbook xlBook, xlResBook;
 22使用C#操作MS-Excel表格COM   Worksheet xlSheet, xlResSheet;
 23使用C#操作MS-Excel表格COM   //打开已有的数据文件
 24使用C#操作MS-Excel表格COM   xlBook = ExcelTools.OpenWorkbook(xlWorkbooks, dataFileDir,true );
 25使用C#操作MS-Excel表格COM   xlSheet = (Worksheet)xlBook.Sheets["sheet1"];
 26使用C#操作MS-Excel表格COM
 27使用C#操作MS-Excel表格COM   //新建一个工作簿
 28使用C#操作MS-Excel表格COM   xlResBook = xlWorkbooks.Add(XlWBATemplate.xlWBATWorksheet);
 29使用C#操作MS-Excel表格COM   xlResSheet =(Worksheet)xlResBook.Sheets["sheet1"];
 30使用C#操作MS-Excel表格COM 
 31使用C#操作MS-Excel表格COM   //从Excel表格中读取数据值,其中ExcelTools为自己手动编写的Excel工具箱类,见后文
 32使用C#操作MS-Excel表格COM    int number = ExcelTools.ReadInt(xlSheet, RowIndex, 4);
 33使用C#操作MS-Excel表格COM    double  x = ExcelTools.ReadDouble(xlSheet, RowIndex, 5);
 34使用C#操作MS-Excel表格COM 
 35使用C#操作MS-Excel表格COM    //获取单元格(区域)对象
 36使用C#操作MS-Excel表格COM    Range rng = xlResSheet.get_Range(xlResSheet.Cells[21], xlResSheet.Cells[23]);
 37使用C#操作MS-Excel表格COM    rng.Merge(Type.Missing);       //合并单元格
 38使用C#操作MS-Excel表格COM    rng.Value2 = "节点位移";
 39使用C#操作MS-Excel表格COM    rng.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
 40使用C#操作MS-Excel表格COM    //为单元格赋值
 41使用C#操作MS-Excel表格COM    ExcelTools.WriteToCell(xlResSheet, 31"节点编号");
 42使用C#操作MS-Excel表格COM    ExcelTools.WriteToCell(xlResSheet, 32"x-Disp");
 43使用C#操作MS-Excel表格COM    ExcelTools.WriteToCell(xlResSheet, 33"y-Disp");
 44使用C#操作MS-Excel表格COM    
 45使用C#操作MS-Excel表格COM    rng.Columns.AutoFit();       //列宽自动调整
 46使用C#操作MS-Excel表格COM    
 47使用C#操作MS-Excel表格COM    //清理应用程序对象
 48使用C#操作MS-Excel表格COM    xlSheet = null;
 49使用C#操作MS-Excel表格COM    ExcelTools.CloseWorkbook(xlBook, false);
 50使用C#操作MS-Excel表格COM    xlBook = null;
 51使用C#操作MS-Excel表格COM    xlResSheet = null;
 52使用C#操作MS-Excel表格COM    ExcelTools.SaveWorkbookAs(xlResBook, currentDir+"\\ResultData");
 53使用C#操作MS-Excel表格COM    ExcelTools.CloseWorkbook(xlResBook, true);    
 54使用C#操作MS-Excel表格COM    xlResBook = null;
 55使用C#操作MS-Excel表格COM    xlApp.Quit();           //关闭Excel程序
 56使用C#操作MS-Excel表格COM    xlApp = null;
 57使用C#操作MS-Excel表格COM    Console.WriteLine("\n按任意键结束本程序,从ResultData.xls数据文件中察看计算结果。");
 58使用C#操作MS-Excel表格COM    Console.ReadKey();
 59使用C#操作MS-Excel表格COM 
 60使用C#操作MS-Excel表格COM4.Excel工具类:
 61使用C#操作MS-Excel表格COM     由于MS-Office对象模型是为VBA设计的,其中的很多方法要使用缺省参数,并且有些方法的缺省参数有十多个,而C#不支持缺省参数,只能使用System.Type.Missing来代替,当遇到那些缺省参数很多的方法时,代码写起来比较罗嗦。为简化这些方法的使用,最好是自己手动为一些常用方法编写自己的简化的包装方法:
 62使用C#操作MS-Excel表格COM 
 63 

相关文章: