这里提供了两种将DataGridView内容导出到excel文件的方法。方法1:/// <summary>/// 在没有安装Excel的情况下,将DataGridView数据导出到Excel/// </summary>
这里提供了两种将DataGridView内容导出到excel文件的方法。
方法1:
/// <summary>/// 在没有安装Excel的情况下,将DataGridView数据导出到Excel/// </summary>private void ExportToExcel(){ SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl files (*.xls)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = true; saveFileDialog.Title = "导出到Excel"; saveFileDialog.ShowDialog(); if (saveFileDialog.FileName == "") { return; } Stream myStream = saveFileDialog.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0)); string str = ""; try { for (int i = 0; i < dataGridView1.ColumnCount; i++) { if (dataGridView1.Columns[i].Visible == false || dataGridView1.Columns[i].DataPropertyName == "") { continue; } str += dataGridView1.Columns[i].HeaderText; str += "\t"; } sw.WriteLine(str); for (int j = 0; j < dataGridView1.Rows.Count - 1; j++) { string strTemp = ""; for (int k = 0; k < dataGridView1.Columns.Count; k++) { if (dataGridView1.Columns[k].Visible == false || dataGridView1.Columns[k].DataPropertyName == "") { continue; } object obj = dataGridView1.Rows[j].Cells[k].Value; if (obj != null) { strTemp += dataGridView1.Rows[j].Cells[k].Value.ToString(); } else { strTemp = ""; } strTemp += "\t"; } sw.WriteLine(strTemp); } sw.Close(); myStream.Close(); MessageBox.Show("成功导出到Excel文件:\n" + saveFileDialog.FileName); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { sw.Close(); myStream.Close(); }}
方法2:
/// <summary>/// 将DataGrirdView数据导出到Excel/// 需要引用Microsoft.Office.Interop.Excel.dll模块/// </summary>/// <param name="dgv"></param>/// <param name="bShowExcel"></param>/// <returns></returns>private bool DataGridviewShowToExcel(DataGridView dgv, bool bShowExcel){ if (dgv.Rows.Count == 0) { return false; } //建立Excel对象 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Application.Workbooks.Add(true); excel.Visible = bShowExcel; //生成字段名称 int k = 0; for (int i = 0; i < dgv.ColumnCount; i++) { if (dgv.Columns[i].Visible == false || dataGridView1.Columns[i].DataPropertyName == "") { k++; continue; } excel.Cells[1, i + 1 - k] = dgv.Columns[i].HeaderText; } //填充数据 for (int i = 0; i < dgv.RowCount; i++) { k = 0; for (int j = 0; j < dgv.ColumnCount; j++) { if (dgv.Columns[j].Visible == false || dataGridView1.Columns[j].DataPropertyName == "") { k++; continue; } excel.Cells[i + 2, j + 1 - k] = dgv[j, i].Value.ToString(); } } return true;}
--结束END--
本文标题: 将dataGridView内容导出到Excel文件
本文链接: https://www.lsjlt.com/news/233844.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0