標籤:
只需要傳入datagridview的name即可。
1 //匯出Excel()方法 2 public void ToExcel(DataGridView dataGridView) 3 { 4 //執行個體化一個Excel.Application對象 5 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 6 7 if (excel == null) 8 { 9 UMessageBoxWarning("無法建立Excel對象,可能您的電腦未安裝Excel!");10 return;11 }12 try13 {14 //沒有資料的話就不往下執行 15 if (dataGridView.Rows.Count == 0)16 return;17 18 //讓後台執行設定為不可見,為true的話會看到開啟一個Excel,然後資料在往裡寫 19 excel.Visible = true;20 21 //新增加一個活頁簿,Workbook是直接儲存,不會彈出儲存對話方塊,加上Application會彈出儲存對話方塊,值為false會報錯 22 excel.Application.Workbooks.Add(true);23 //產生Excel中列頭名稱 24 for (int i = 0; i < dataGridView.Columns.Count; i++)25 {26 if (dataGridView.Columns[i].Visible == true)27 {28 excel.Cells[1, i + 1] = dataGridView.Columns[i].HeaderText;29 }30 31 }32 //把DataGridView當前頁的資料儲存在Excel中 33 for (int i = 0; i < dataGridView.Rows.Count - 1; i++)34 {35 Application.DoEvents();36 for (int j = 0; j < dataGridView.Columns.Count; j++)37 {38 if (dataGridView.Columns[j].Visible == true)39 {40 if (dataGridView[j, i].ValueType == typeof(string))41 {42 excel.Cells[i + 2, j + 1] = "‘" + dataGridView[j, i].Value.ToString();43 }44 else45 {46 excel.Cells[i + 2, j + 1] = dataGridView[j, i].Value.ToString();47 }48 }49 50 }51 }52 //設定禁止彈出儲存和覆蓋的詢問提示框 53 //...54 //確保Excel進程關閉 55 excel.Quit();56 excel = null;57 GC.Collect();//如果不使用這條語句會導致excel進程無法正常退出,使用後正常退出58 UMessageBoxNone("檔案已經成功匯出!");59 }60 catch (Exception ex)61 {62 MessageBox.Show(ex.Message);63 }64 65 }
C#winform中datagridview匯出Excel