2010-11-26 69 views
1

我發現自己擁有一個包含大約3,000行數據的Excel電子表格,這些數據代表了我需要對SQL表進行添加或更改的數據。正如你可以想象的那樣手動處理太多了。由於我無法控制的許多原因,我不能簡單地使用SSIS包或其他更簡單的方法將這些更改導入數據庫。我唯一的選擇是創建SQL腳本,這些腳本將使電子表格中的更改顯示爲MS SQL 2005.使用VSTO進行Excel數據處理?

我完全沒有Office自動化或VSTO的經驗。我嘗試過在線查看,但大部分我看過的教程似乎都讓我感到困惑。因此,我的想法是,我會使用.NET和VSTO遍歷數據行(或使用LINQ,無論有什麼意義),並確定涉及的項目是插入還是更新項目。在工作表中有顏色突出顯示增量,所以我想我可以使用它,或者我可以查找一些關鍵數據來確定條目是否存在。一旦我建立了我正在處理的內容,就可以調用生成SQL語句的方法來插入或更新數據。插入將非常容易,我可以使用增量高亮來確定哪些字段需要更新更新項目。

我會很好地將SQL輸出到一個文件,或者甚至在該行的最後一個單元格中爲給定行添加SQL的測試。我們將非常感謝您對某些示例代碼,示例,how-tos或其他方面的任何指導,這些將會使我朝着正確的方向發展。我不挑剔。如果有一些工具我不知道,或者使用現有的工具,我沒有想到要完成生成SQL來完成任務的基本任務,那麼我就是爲了它。

如果您需要任何其他信息隨時問。

乾杯,

史蒂夫

+0

您忘了提及您要使用哪個分貝。 – 2010-11-26 21:44:45

+0

@Doc Brown - 謝謝。編輯包含對MS SQL 2005的引用。 – 2010-11-26 21:46:44

回答

3

我建議嘗試VSTO前,讓事情變得簡單,並得到一些經驗,如何用Excel VBA解決這樣的問題。恕我直言,這是學習Excel對象模型最簡單的方法,尤其是因爲您手邊有宏記錄器。稍後,如果您認爲必須切換到C#,VSTO或自動化或(更好!)Excel DNA,則可以重新使用此知識。

對於Excel VBA,也有很多的教程在那裏,這裏是一個:

http://www.excel-vba.com/excel-vba-contents.htm

如果你需要知道如何在VBA程序中執行像INSERT或UPDATE任意的SQL命令,看這個SO職位:

Excel VBA to SQL Server without SSIS

這裏是另一個SO發佈展示如何從一個SQL Server數據到Excel電子表格:

Accessing SQL Database in Excel-VBA