簡體   English   中英

如何使用c#winform將10,000行數據從存儲過程移動到excel

[英]How to move 10,000 rows of data from a Stored Procedure to excel using c# winform

情況如下 -

  • UserX需要有關PlayerY的信息。
  • 目前我獲得有關PlayerY的詳細信息並運行兩個返回兩個數據集的sql腳本 - 每個數據集大約有10,000個記錄。
  • 然后,我手動將這些集復制並粘貼到Excel工作簿中,並通過電子郵件發送給UserX

目前的計划方法:

  1. 我將為UserX創建一個簡單的WinForm或WPF,它將接受PlayerY詳細信息的輸入。
  2. 我將創建兩個將接受表單輸入的存儲過程。

數據如何從數據庫傳輸到UserX的客戶端?

我問,因為數據集非常大,並且由於尺寸的原因,某些方法可能存在無法預料的問題。 如果存儲過程首先將數據移動到實際的服務器表,那么還有第二步並將數據從服務器表移動到Excel中嗎? 或者我應該讓存儲過程返回數據集,因為它很容易將它們直接移動到XL而沒有任何中間服務器表?

如果你打算獲取記錄thr'c#,

而不是一次獲取10000條或更多條記錄,而是獲取特定的no。 記錄,例如1000次,10次。 這將使流程更快,內存負載更少。

您無需創建任何中間服務器表來存儲數據集。

使用c#中的DocumentFormat.OpenXml.Spreadsheet,您可以將該數據集寫入Xlsx格式或使用System.xml創建xml文件或使用thrid party工具/創建自己的excel xml來創建xls格式。

我建議您使用C#在運行時從存儲過程返回的結果創建.csv文件,可以在Excel中打開.csv文件,這樣您仍然可以在應用程序結束時使用Excel作為應用程序

另請參閱此鏈接,因此我不建議您使用Office自動化

http://support.microsoft.com/kb/257757獲取的段落 Microsoft目前不建議也不支持從任何無人參與的非交互式客戶端應用程序或組件(包括ASP,ASP.NET)自動化Microsoft Office應用程序,DCOM和NT服務),因為Office在此環境中運行時可能會出現不穩定的行為和/或死鎖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM