2013-04-15 51 views
1

如何開發Excel插件來編輯Excel數據表中的外部數據?在Excel中編輯外部數據表

Excel可以建立與外部數據源的連接,但據我所知可以看到它們是單向的只讀數據表。我正在嘗試做的就像TFS插件的Excel。我相信還有更多這樣的人。

對於那些不知道該插件的人: 安裝後,TFS Excel插件將作爲Excel中的新菜單進行。通過該菜單,您可以打開與TFS服務器的連接,並將您的(工作項目)記錄作爲Excel表格放入Excel中。您可以添加新行或編輯表中的數據。一些單元格下拉列表附加到他們,但只有有效的選項顯示在列表中,並且每個記錄不同。您可以編輯表格中的行,並可以將這些記錄批量推送回服務器。

我不知道它是否有所作爲,但我的數據源上的連接和更新操作將通過Web服務。

我想這將需要一些嚴重的發展,但我失去了網頁之間有關外部數據範圍(這是隻爲閱讀)。有人可以指導我進一步閱讀有關該主題嗎?

回答

0

外部數據範圍不會幫助您,因此您可以停止閱讀關於它們的網頁。你是正確的,他們只讀。您可以將它們用於您的操作的讀取部分,但是您將在寫入部分編寫大量代碼,您可能只是控制所有內容。你只是不會從外部數據範圍中獲得足夠的好處來保證在這種情況下使用它們。在我看來,當然。

如果您正在讀取和寫入數據庫,您可能會使用ActiveX數據對象(ADO)。您可以讀入記錄集,監視它的變化,然後根據需要使用UPDATE,DELETE和INSERT語句回寫數據庫。

如果您將通過API與數據庫進行交互,您可能會使用Microsoft XML庫,特別是MSXML2.XMLHTTP對象。您可以使用GET,POST,PUT,DELETE和其他任何可以通過HTTP執行的操作。

如果您之前從未使用過XMLHTTP,那麼您將有一點學習要做。但這不是特別困難,並且有大量信息可用。在我看來,困難的部分是跟蹤對Excel工作表所做的更改。如果您允許用戶使用Excel的本機編輯功能,則可能難以跟蹤所做的更改。如果你進入完全鎖定狀態,用戶不得不說,用你的菜單項刪除一條記錄,那麼你必須問你爲什麼使用Excel(可能還有很好的理由,但熟悉Excel的界面贏了不會成爲他們中的一員,因爲你會用你的替換它)。

也許你已經有了一個這樣的策略。但是,如果沒有,搜索「檢測工作表更改事件刪除行」,以瞭解您將面臨的一些挑戰。如果您有前進的方向,那麼請閱讀XMLHTTP並且您應該全部設置。

+0

什麼開發一個Excel插件通過Visual Studio?連接到CRUD操作的任何數據源API都不會成爲問題。如果我這樣做,我能夠響應Excel事件嗎?例如,當用戶嘗試彈出單元格的下拉列表時。我能夠動態地填充它嗎? –

+0

無論您使用VS還是VBA,連接到API都不是問題,它正在跟蹤更改。是的,您可以動態地填充放置在單元格上方的繪圖層上的ActiveX組合框。數據驗證下拉菜單有一些動態,但它們有限,所有事件都不響應DV。 –