现在的位置: 首页 > 综合 > 正文

c# Excel编程中的几个问题

2013年10月06日 ⁄ 综合 ⁄ 共 1795字 ⁄ 字号 评论关闭

1、在编程的时候,有时会用Worksheets 接口,有时又会用Sheets接口,那么他们出现的场合分别在什么条件下?有怎么的区别?

answer:   worksheets是指你当前非活动表,而sheets是当前活动表,每个是Sheet是一个工作簿,各个sheet就构成了 sheets,也就是工作表了。如果你同时打开book1和book2,但你对book1进行操作的时候,book1所属的就可以写sheets,而book2就是worksheets。

另一种解释是,Sheets是活动的workbook中sheets的集合,而Worksheets是活动的workbook中Worksheet对象的集合,每个Worksheet对象代表一个worksheet。

2、_workbook与workbook,在Excel的编程中多用_workbook,但workbook是存在的,二者有何区别

事实上两者之间没有太大区别,两者都是接口,workbook继承了_worbook,同时也继承了WorkbookEvents_Event,提供了访问workbook事件的能力

即publicinterfaceWorksheet:
_Worksheet
,DocEvents_Event 
3、Excel 操作常用的变量

    private Excel.Application m_objExcel = null;  //Excel进程
    private Excel.Workbooks m_objBooks = null; //工作簿集合
    private Excel._Workbook m_objBook = null;   //当前活动的工作簿
    private Excel.Sheets m_objSheets = null;      //工作表的集合
    private Excel._Worksheet m_objSheet = null;  //当前活动的工作表
    private Excel.Range m_objRange = null;          //代表一块区域,即范围
    private object m_objOpt = System.Reflection.Missing.Value;   //使用Missing 类的此实例来表示缺少的值,例如,当您调用具有默认参数值的方法时

 

各变量赋值

     m_objExcel = new Excel.Application();
      m_objExcel.Visible = false;
      m_objExcel.DisplayAlerts = false;

      if (m_objExcel.Version != "11.0")
      {
        MessageBox.Show("您的 Excel 版本不是 11.0 (Office 2003),操作可能会出现问题。");
        m_objExcel.Quit();
        return;
      }

      m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
      if (TemplateFilePath.Equals(String.Empty))
      {
        m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));
      }
      else
      {
        m_objBook = m_objBooks.Open(TemplateFilePath, m_objOpt, m_objOpt, m_objOpt, m_objOpt,
          m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
      }
      m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
      m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));

 

4、Excel对象模型http://msdn.microsoft.com/zh-cn/library/wss56bz7.aspx

抱歉!评论已关闭.