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