[英]Import Excel files to SQL Azure, within Azure
我看過這樣的問題這 (是Jet.OLEDB在64位的支持?)和本 (需要預置MSSQL)在SSO,但我還沒有碰到適合我的解決方案來。
我在Azure VM中有一些Excel文件(xlsx),我想將所有這些文件推送到Azure中的SQL數據庫。 這將是一項重復性的任務(文件從源入庫並且必須推送到DB)-需要每天執行。
我正計划使用這種方法-
當前解決方案 -
自定義代碼 :.NET應用程序,它使用OpenXML SDK / NPOI / EPPlus讀取文件並將它們手動推送到SQL數據庫(使用.Net SQLBulkCopy)。 應用程序在VM中運行。
上述方法的問題是-它需要時間來編碼和測試具有不同架構的excel文件。 我正在尋找是否有其他選項可以避免自定義代碼。 請注意,這里沒有內部部署(因此我假設沒有SSIS,沒有BCP(?)等)。 這不是一次性遷移活動。
其他選擇?
1) 訪問數據庫引擎? :可以使用“ Access Database Engine”( 2010或2013嗎?)而不是openXML或其他工具來讀取excel文件? 在64位環境中,它似乎是Jet.OLEDB的替代產品。 但是我不確定是否也支持excel 2007格式,如果工作只是為了讀取excel文件(不創建,不進行操作),為什么還要選擇OpenXml SDK / NPOI / EPPlus?
2) Azure中的BCP? :BCP可以在天藍色內使用嗎? 對此不太確定。 如果是這樣, 將 XLSX 轉換為CSV,然后使用BCP上傳到SQL數據庫是否有意義,從而使我必須編寫的代碼量最少?
3) ExcelDataReader? :如果可以選擇使用自定義代碼,那么可以跨平台(並且我不需要跨平台功能)並且同時支持XLS和XLSX的ExcelDataReader可以。 據說ExcelDataReader更快-但與使用OpenXML SDK或NPOI / EPPlus之類的工具讀取文件相比,它不確定有多快
贊賞社區的想法。
根據我的經驗,選擇2最為實用。 是否要使用ExcelDataReader之類的庫打開Excel文檔,還是要先以編程方式將文件轉換為CSV並作為分隔文件讀取,都取決於您的偏好/熟悉程度。 無論哪種方式,BCP都是使用自定義代碼將數據獲取到SQL數據庫的相對簡單的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.