我有一個從數據庫獲取數據然後將其放入網格的函數。我使用下面的代碼:如何從SQL服務器獲取數據到DataGridView然後到Excel
ds = new DataSet();
SQL = "SELECT * " +
"FROM table ";
using (SqlConnection conn = new SqlConnection(Connect))
{
conn.Open();
adapter = new SqlDataAdapter(SQL, conn);
adapter.Fill(ds, "data");
}
dgvInvoiceData.DataSource = ds.Tables[0];
哪個效果不錯。有時用戶可能希望將網格複製到Excel。這對小結果集足夠好。一旦它們超過50行,它就會迅速無法使用。我嘗試設置一個範圍到一個數組,但每次都失敗。
int cols = 0;
int rows;
_Application XL = new Microsoft.Office.Interop.Excel.Application();
_Workbook workbook = XL.Workbooks.Add(Type.Missing);
_Worksheet worksheet = null;
Range xlr;
XL.Visible = false;
worksheet = workbook.ActiveSheet;
worksheet.Name = sheetName;
xlr = worksheet.Range["A0:B02"];
xlr = worksheet.get_Range("A0:" + (char)(64 + cols) + rows.ToString());
xlr = worksheet.get_Range("A0:" + (char)(64 + cols) + rows.ToString(), Type.Missing);
worksheet.get_Range("A0:" + (char)(64 + cols) + rows.ToString(), Type.Missing).Value2 = dt;
有很多嘗試嘗試獲取範圍然後設置一個數組或類似的東西。
我得到了一些無用的錯誤
「System.Runtime.InteropServices.COMException」類型的未處理的異常出現在AspireExcel.dll
如果有更好的方式來獲取數據到我可以將數據源直接傳遞給Excel的網格,或者我可以很好地處理這些數據。
我不知道這是否相關,但看着this我看到的Excel變量定義略有不同。當我試圖
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
Excel.Application XL = new Excel.Application();
我得到
類型或命名空間名稱「Excel的」找不到(是否缺少using指令或程序集引用?)的Excel C:\代碼\ Excel \ Excel \ Transfer.cs 190活動
我可以有錯誤的引用嗎?我有Microsoft.Office.Core & Microsoft.Office.Interop.Excel
看看[EPPlus(http://epplus.codeplex.com),這是一個非常簡單的圖書館,可使用,而不用創建Excel文件的Interop – sallushan