C# 导出dataGridView中的值到Excel
方法/步驟
添加Office Excel引用,在.net下面。
程序代碼引用:using Excel = Microsoft.Office.Interop.Excel;
添加事件控件“導出Excel”
雙擊“導出Excel”空間添加代碼:
? private void button2_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? string fileName = "";
? ? ? ? ? ? string saveFileName = "";
? ? ? ? ? ? SaveFileDialog saveDialog = new SaveFileDialog();
? ? ? ? ? ? saveDialog.DefaultExt = "xls";
? ? ? ? ? ? saveDialog.Filter = "Excel文件|*.xls";
? ? ? ? ? ? saveDialog.FileName = fileName;
? ? ? ? ? ? saveDialog.ShowDialog();
? ? ? ? ? ? saveFileName = saveDialog.FileName;?
? ? ? ? ? ? if (saveFileName.IndexOf(":") < 0) return; //被點了取消
? ? ? ? ? ? Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
? ? ? ? ? ? if (xlApp == null)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? MessageBox.Show("無法創建Excel對象,您的電腦可能未安裝Excel");
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? ? ? Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
? ? ? ? ? ? Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
? ? ? ? ? ? Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1?
? ? ? ? ? ? //寫入標題 ? ? ? ? ? ??
? ? ? ? ? ? for (int i = 0; i < dataGridView1.ColumnCount; i++) ? ? ? ? ? ??
? ? ? ? ? ? {worksheet.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;}
? ? ? ? ? ? //寫入數值
? ? ? ? ? ? for (int r = 0; r < dataGridView1.Rows.Count; r++)
? ? ? ? ? ? { for (int i = 0; i < dataGridView1.ColumnCount; i++)?
? ? ? ? ? ? {?
? ? ? ? ? ? ? ? worksheet.Cells[r + 2, i + 1] = dataGridView1.Rows[r].Cells[i].Value;
? ? ? ? ? ? }?
? ? ? ? ? ? ? ? System.Windows.Forms.Application.DoEvents();
? ? ? ? ? ? }
? ? ? ? ? ? worksheet.Columns.EntireColumn.AutoFit();//列寬自適應
? ? ? ? ? ? MessageBox.Show(fileName + "資料保存成功", "提示", MessageBoxButtons.OK);
? ? ? ? ? ?if (saveFileName != "")
? ? ? ? ? ?{ ? ??
? ? ? ? ? ? ? ?try?
? ? ? ? ? ? ? ?{workbook.Saved = true;
? ? ? ? ? ? ? ? ? ?workbook.SaveCopyAs(saveFileName); ?//fileSaved = true; ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?catch (Exception ex) ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ?{//fileSaved = false; ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?MessageBox.Show("導出文件時出錯,文件可能正被打開!\n" + ex.Message); ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?} ? ? ? ? ? ??
? ? ? ? ? ?} ? ? ? ? ? ? ?
? ? ? ? ? ? xlApp.Quit(); ? ? ? ? ? ? ?
GC.Collect();//強行銷毀 ? ? ? ? ? }
?
?
? ? ? ? }
重新生成“解決方案”后測試。
通過以上,成功的將datagridview中的值導出到excel中了。
END 經驗謹供參考! ?
轉載于:https://www.cnblogs.com/wanzhongjun/p/6538874.html
總結
以上是生活随笔為你收集整理的C# 导出dataGridView中的值到Excel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT1098【插入排序+堆排序】
- 下一篇: 网页侧边浮动条的实现