我想使用asp.net 3.5中的三層體系結構將數據從SQL Server表傳輸到Excel工作表。用戶在Excel工作表中進行了必要的更改後,我希望Excel工作表可以上傳並更新表格中的數據,並驗證正確的數據。使用查詢將數據從SQL Server表傳輸到Excel,反之亦然
回答
你可以要不是看在庫(噸他們在那裏)以編程方式讀寫Excel表格,並手動處理這一切。
OR:檢查出SQL Server Integration Services(SSIS) - 他們提供整潔的方式到SQL Server數據導出到的格式(包括Excel)衆多,而且他們還提供返回路由。您也可以從.NET應用程序輕鬆控制和執行SSIS包。
我可以想到兩種方法。首先是從Excel VBA(可以使用密碼保護)與SQL/Server建立ADO連接。當您在Excel中按下按鈕時,它會一次讀取一個記錄的電子表格數據並具有驗證邏輯,或者只是將其插入查詢上載到臨時表格,然後觸發器會查看數據並對其進行處理。這樣你就不必上傳任何文件。
我已經在VBA中使用ADO命令到SQL/Server,它們非常簡單,可靠且速度非常快。通過Google搜索找到很多示例來查找示例。這很棒,因爲您可以使用各種特定於Excel的VBA命令來創建記錄,然後更新或插入它或您需要執行的任何操作。
爲了安全起見,您可以限制用戶(連接字符串和密碼隱藏在VBA中) - 只需在特定數據庫中插入數據,即使密碼被VBA破解,也不會執行任何操作好,因爲他們只能插入。
第二種方法是創建一個普通的ASP上傳控件,它在完成時接受您的Excel文件。在ASP中有一個事件,您可以在文件上傳完成時運行ASP.Net代碼。這將看到上傳的Excel文件,通過用於閱讀Excel文件的普通.net命令(Excel自動化)讀取它,然後處理它,然後我想要刷新它或丟棄它。我不知道在服務器上是否有運行Excel自動化的複雜問題 - 可能是因爲它本質上是在Web服務器上運行Excel.Exe的版本(不是一個好主意)。
我相信你可以從ASP到Excel文件進行ADO連接,並對其執行SQL查詢。我已經成功完成了這一步,但不幸的是,它根據前幾個記錄來決定字段的類型,並且在將Excel文件作爲數據庫讀取時有時會導致很多問題。我想你可以編寫一些快速的VBA來將Excel數據輸出到CSV並上傳該CSV文件,以便Web服務器上的任何內容都不必嘗試讀取Excel文件。在VBA中,您甚至可以通過SendKeys和InternetExplorer自動化自動進行上傳。我已經完成了,它的工作非常好。出於安全原因,Sendkeys是填充文件上載文本框的唯一方法。
正如你所看到的第一個答案是更好的答案。這就是我會這樣做的原因,因爲您也可以用新數據刷新電子表格。
我其實覺得你在這裏發佈了一個非常有趣的問題。在Excel電子表格中編輯數據並將其發送回來要容易得多。我使用來自基本對象的Excel風格的網格控件(偉大的軟件)複製了很多功能,但是模擬電子表格需要很多編碼,並且仍然只是一個類似Excel的表單,而不是一個完整的電子表格。
如果你願意把MS-Access放在中間,這可以讓你解決很多這些複雜問題,但它本身就是一個額外的層。
- 1. 如何將數據從Javascript傳遞到PHP,反之亦然?
- 2. PHP到C#反之亦然
- 3. 使用VB導入Excel文件到SQL中,反之亦然?
- 4. 將數據結構從java傳遞給perl(反之亦然)
- 5. 將參數從Java傳遞到Python,反之亦然
- 6. 管理從SQL精簡版或SQL Server數據庫反之亦然
- 7. 反之亦然在MySQL查詢子句
- 8. 傳遞指針到C++,反之亦然
- 9. 如何將SPSS數據文件直接傳輸到Matlab矩陣,反之亦然?
- 10. 如何將數據從js發送到php,反之亦然?
- 11. 如何將數據從JavaScript發送到PHP,反之亦然?
- 12. 將數據從cv :: Mat複製到CvMat並反之亦然
- 13. jQuery跨度到輸入,反之亦然
- 14. 從一個select到另一個的傳輸數據,反之亦然
- 15. SQL表名===類名?反之亦然?
- 16. 將數據從SQL Server傳輸到MySQL
- 17. 從結果集中排除使用sql查詢的反之亦然條目
- 18. 從MinGW使用msysGit,反之亦然
- 19. 將數據從自定義視圖傳遞到活動或反之亦然
- 20. XAML到Html,反之亦然
- 21. 是否可以使用JDBC將數據從Oracle傳輸到Teradata或反之亦然?
- 22. XML到XLSX,反之亦然使用java
- 23. 從ActiveX傳遞字節數組到JavaScript,反之亦然
- 24. 如何將圖片從android設備傳輸到Matlab,反之亦然
- 25. 使用JNI將結構從java傳遞到C代碼,反之亦然
- 26. 將SQL Server數據傳輸到SQL Azure
- 27. 選擇數據反之亦然
- 28. Varbinary數據INTO文本,反之亦然
- 29. 將數據表翻譯成自定義對象,反之亦然
- 30. ArrayList到字節,反之亦然