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