我當前項目的一部分涉及從包含120,000多條記錄的大型SQL表填充Excel工作表。我目前使用SqlDataReader和while循環來直接填充一個新的Excel工作表,但顯然這需要不切實際的時間。使用StringBuilder建立一個本地.CSV文件然後打開在Excel中似乎是一個更快的選項。是否傾向於將數據轉儲至每一千行左右的文件,或者一次寫入全部數據?或者是否有更有效的方式來導入我不考慮的數據?將大型SQL查詢移至Excel
數據集根據用戶輸入而有所不同,所以我不能簡單地附加到現有文件。
當前代碼:
SqlConnection cnnct = new SqlConnection("Data Source=Source;Initial Catalog=Catalog;Integrated Security=True;");
cnnct.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnnct;
string cmdText = "SELECT * FROM TABLE";
cmd.CommandText = cmdText;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
columnChar = 'A';
rowCount++;
cellName = columnChar.ToString() + rowCount.ToString();
ws.get_Range(cellName, cellName).Value2 = dr["EXAMPLE_FIELD"].ToString();
columnChar++;
//The above three lines are identical for each field (there are 26)
}
你有什麼試過的?你有性能測試來嘗試各種選擇嗎?您所顯示的代碼與編寫CSV文件無關。 –
正如我在第一篇文章中所說的,我目前使用SqlDataReader和while循環來直接填充一個新的Excel工作表。我一直在探索不同的選擇,但是我在開始構建CSV之前尋找外部意見。我不在尋找代碼示例,我只是好奇,如果可能有一個更有效的選擇。 – ti30xa