• C#操作Excel的总结


    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;
    
  • 相关阅读:
    《浏览器工作原理与实践》读书笔记(4)
    在django中使用原生sql语句
    异步任务 ---- django-celery
    vue上传视屏或者图片到七牛云
    django项目初始化
    mysql 更新并生成指定范围随机数
    opencv基本命令学习整理
    docker分配CPU、内存资源
    傅里叶分析
    websocket协议性能测试(jmeter版)
  • 原文地址:https://www.cnblogs.com/zhoukaiwei/p/2393726.html
Copyright © 2020-2023  润新知