1、一般创建一个excel实例,如下:
Microsoft.Office.Interop.Excel.Application MyExcel = new Microsoft.Office.Interop.Excel.Application();
但是也可以这样,Microsoft.Office.Interop.Excel.ApplicationClass MyExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
其中Application和ApplicationClass的联系和区别
代码中使用Application接口,实际在初始化实例时,系统使用Application Class类来初始化Application对象。
也可以使用ApplicationClass、WorkbookClass、WorksheetClass等类来代替接口,但应该避免这样使用。因为这些类可能对有些共享方法产生歧义,编译时会报错。
参考原文为: http://msdn.microsoft.com/en-us/library/ms247302%28office.11%29.aspx
Using these classes has the potential to cause ambiguities if some members share the same name. For example, Microsoft Word exposes both an Microsoft.Office.Interop.Word._Application.Quit(System.Object,System.Object,System.Object) method and an Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit event. These ambiguities can generate a compiler error.
但是我在使用MyWorksheet.Activate()方法时同样出现这样的编译错误。
2、Worksheets.Add方法介绍:
Worksheets 对象的 Add 方法:新建工作表、图表或宏表。新建的工作表将成为活动工作表。语法是:expression.Add(Before, After, Count, Type)
expression : 必需。该表达式返回上面的对象之一。
Before : Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之前。
After : Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之后。
Count : Variant 类型,可选。要新建的工作表的数目。默认值为 1。
Type : Variant 类型,可选。指定工作表类型。
1、Type 可为以下 XlSheetType 常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet 或 xlExcel4IntlMacroSheet。
2、如果要基于现有模板插入工作表,则指定该模板的路径。
3、默认值为 xlWorksheet。
代码 MyWorkBook.Worksheets.Add(Missing.Value, Missing.Value, 1, Missing.Value); 会增加1个worksheet,放在最前面。
MyWorkBook.Worksheets[1],返回的是第一个sheet,但不是Worksheet对象,是System.__ComObject对象,需要(Worksheet)转换一下。
3、其他事项
3.1 如果想显示Excel, MyExcel.Visible = true;
3.2 如果想看workbook中有几个sheet,int i = MyWorkBook.Sheets.Count; 或者 int i = MyWorkBook.Worksheets.Count;
4、我做了一个建立excel的程序,供参考:
public void GetExcelofList(string SheetName, string[] Title, List<ClsSQLDataToExcel> ContentList, string StrAttachmentList) { Microsoft.Office.Interop.Excel.ApplicationClass MyExcel = new Microsoft.Office.Interop.Excel.ApplicationClass(); Microsoft.Office.Interop.Excel.Workbook MyWorkBook = MyExcel.Application.Workbooks.Add(Missing.Value); MyWorkBook.Worksheets.Add(Missing.Value, Missing.Value, 1, Missing.Value); // four sheets, Sheet4,Sheet1,Sheet2,Sheet3 Microsoft.Office.Interop.Excel.Worksheet MyWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)MyWorkBook.Worksheets[2]; //Select Sheet1 ((Microsoft.Office.Interop.Excel.Worksheet)MyWorkBook.Worksheets[3]).Delete(); //delete Sheet2 ((Microsoft.Office.Interop.Excel._Worksheet)MyWorkSheet).Activate(); MyExcel.DisplayAlerts = false; MyWorkSheet.Name = SheetName;