ListObject 控制項

更新: 2008 年 7 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

文件層級專案

  • Excel 2007

  • Excel 2003

應用程式層級專案

  • Excel 2007

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

ListObject 控制項是公開事件且可繫結至資料的清單。當您將清單加入至工作表時,Visual Studio Tools for Office 會建立 ListObject 控制項,您可以對此控制項直接進行程式設計,而不必周遊 Microsoft Office Excel 物件模型。

建立控制項

您可以透過文件層級自訂,於設計階段或執行階段將 ListObject 控制項加入至 Microsoft Office Excel 工作表。從 Visual Studio 2008 Service Pack 1 (SP1) 開始,您可以於執行階段,透過應用程式層級的增益集加入 ListObject 控制項。如需詳細資訊,請參閱 HOW TO:將 ListObject 控制項加入至工作表

注意事項:

根據預設,當工作表關閉時,動態建立的清單物件不會保存為工作表中的主控制項。如需詳細資訊,請參閱在執行階段將控制項加入至 Office 文件

將資料繫結至控制項

ListObject 控制項支援簡單和複雜的資料繫結。您可以在設計階段使用 DataSourceDataMember 屬性,或在執行階段使用 SetDataBinding 方法,將 ListObject 控制項繫結至資料來源。

注意事項:

ListObject 繫結至資料變更就引發事件的資料來源 (例如 DataTable) 時,它就會自動進行更新。如果您將 ListObject 繫結至資料變更時不會引發事件的資料來源,就必須呼叫 RefreshDataRowRefreshDataRows 方法來更新 ListObject

當您將重複的結構描述項目對應至工作表儲存格,藉以加入 ListObject 至該儲存格時,Visual Studio Tools for Office 就會自動將 ListObject 對應至產生的資料集。不過,ListObject 並不會自動繫結至資料。在文件層級專案中,您可以採取某些步驟,將 ListObject 繫結至設計階段或執行階段的資料集。從 SP1 開始,您可以用程式設計方式,使用應用程式層級的增益集將 ListObject 繫結至執行階段的資料集。

由於資料與 ListObject 分離,因此您應該透過繫結的資料集新增和移除資料,而不是直接透過 ListObject 進行。如果繫結資料集內的資料已透過任何機制進行更新,則 ListObject 控制項會自動反映這些變更。如需詳細資訊,請參閱將資料繫結至控制項

您可以將 ListObject 繫結至資料來源,藉以迅速填滿 ListObject 控制項。如果您在資料繫結的 ListObject 中編輯資料,則資料來源中也會自動進行這些變更。如果您想要填滿 ListObject,然後讓使用者變更 ListObject 中的資料但卻不會修改資料來源,可以使用 Disconnect 方法將 ListObject 與資料來源中斷連結。如需詳細資訊,請參閱 HOW TO:以資料填入 ListObject 控制項

注意事項:

重疊的 ListObject 控制項不支援資料繫結。

提高 ListObject 控制項的效能

如果先繫結控制項,然後呼叫 ReadXml 填入資料集,則將 XML 檔案讀取至資料繫結 ListObject 控制項會變慢。若要提高效能,請在繫結控制項之前,先呼叫 ReadXml

中斷 ListObject 控制項與資料來源的連接

當您將 ListObject 控制項繫結至資料來源並藉以填滿資料後,就可以中斷該繫結,如此對清單物件中資料所做的變更就不會影響資料來源。如需詳細資訊,請參閱 HOW TO:以資料填入 ListObject 控制項

格式

可套用至 Microsoft.Office.Interop.Excel.ListObject 的格式,也可以套用至 Microsoft.Office.Tools.Excel.ListObject 控制項,包括框線、字型、數字格式和樣式。使用者可以在資料繫結 ListObject 中重新排列欄,只要 ListObject 是在設計階段加入至文件,這些變更就會與文件一起持續。當下次開啟文件時,清單物件將會繫結至相同的資料來源,不過欄順序會反映使用者的變更。

在執行階段新增和移除欄

您不能在執行階段手動新增或移除資料繫結 ListObject 控制項中的欄。如果使用者嘗試刪除某個欄,將會立即還原該欄,並移除任何新增的欄。因此,請務必撰寫程式碼,向使用者解釋為何無法在繫結至資料的 ListObject 上執行這些動作。Visual Studio Tools for Office 在 ListObject 上提供多個與資料繫結相關的事件。例如,您可以使用 OriginalDataRestored 事件,在使用者嘗試刪除資料時,提出該資料無法刪除且已還原的警告。

在執行階段新增和移除列

只要資料來源允許加入新列且不是唯讀,您便可以在資料繫結 ListObject 控制項中手動新增和移除列。您可以針對事件撰寫程式碼,例如針對 BeforeAddDataBoundRow 以驗證資料,或是針對 ErrorAddDataBoundRow 以在錯誤完成修正後進行重試。

如需詳細資訊,請參閱 HOW TO:將新資料列加入 ListObject 控制項時驗證資料HOW TO:將新資料列加入 ListObject 控制項時處理錯誤

在 Excel 2007 中重新命名 ListObject 控制項

Excel 2007 可讓使用者使用 [設計] 索引標籤,變更 Excel 表格在執行階段的名稱。但是,ListObject 控制項並不支援這項功能。如果使用者嘗試重新命名對應於 ListObject 的 Excel 表格,該 Excel 表格的名稱就會自動還原成活頁簿儲存時使用的原始名稱。

注意事項:

「Excel 清單」在 Excel 2007 中已改稱為「Excel 表格」。

事件

下列事件適用於 ListObject 控制項:

請參閱

工作

HOW TO:將 ListObject 控制項加入至工作表

HOW TO:調整 ListObject 控制項的大小

HOW TO:將新資料列加入 ListObject 控制項時驗證資料

HOW TO:將新資料列加入 ListObject 控制項時處理錯誤

HOW TO:將 ListObject 欄對應到資料

HOW TO:以資料填入 ListObject 控制項

Excel 增益集動態控制項範例

HOW TO:將資料庫的資料填入工作表

概念

了解 ListObject 資料行和資料列順序的持續性

將資料繫結至控制項

在應用程式層級增益集的執行階段中擴充 Word 文件和 Excel 活頁簿

Excel 應用程式層級增益集開發

在執行階段將控制項加入至 Office 文件

主項目和主控制項的程式設計限制

其他資源

Excel 主控制項

Word 主控制項

Office 文件上的控制項

變更記錄

日期

記錄

原因

2008 年 7 月

加入有關透過應用程式層級增益集來使用清單物件控制項的資訊。

SP1 功能變更。