欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > C#导出dataGridView数据

C#导出dataGridView数据

2025/9/16 19:11:37 来源:https://blog.csdn.net/m0_63456808/article/details/145798294  浏览:    关键词:C#导出dataGridView数据

方法一:导出为CSV文件(简单快速)

优点:无需依赖库,但格式简单。

private void ExportToCSV(DataGridView dataGridView, string filePath)
{using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.UTF8)){// 写入列头sw.WriteLine(string.Join(",", dataGridView.Columns.Cast<DataGridViewColumn>().Select(col => col.HeaderText)));// 写入数据行foreach (DataGridViewRow row in dataGridView.Rows){sw.WriteLine(string.Join(",", row.Cells.Cast<DataGridViewCell>().Select(cell => cell.Value?.ToString()?.Replace(",", ";") ?? "")));}}MessageBox.Show("导出成功!");
}

调用方法:

private void exportButton_Click(object sender, EventArgs e)
{try{SaveFileDialog saveDialog = new SaveFileDialog();saveDialog.Filter = "CSV文件|*.csv";if (saveDialog.ShowDialog() == DialogResult.OK){ExportToCSV(dataGridView1, saveDialog.FileName);}}catch (Exception exception){MessageBox.Show("导出失败!");}}

方法二:使用EPPlus库(推荐,无需安装Excel)

优点:无需安装Microsoft Excel,支持.xlsx格式,性能较好。
步骤

安装EPPlus NuGet包
在Visual Studio中,通过NuGet包管理器安装EPPlus

using OfficeOpenXml;
using System.IO;
using System.Windows.Forms;private void ExportToExcelWithEPPlus(DataGridView dataGridView, string filePath)
{// 检查数据是否为空if (dataGridView.Rows.Count == 0){MessageBox.Show("没有数据可导出!");return;}// 创建Excel包using (ExcelPackage excelPackage = new ExcelPackage()){ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");// 写入列头for (int i = 0; i < dataGridView.Columns.Count; i++){worksheet.Cells[1, i + 1].Value = dataGridView.Columns[i].HeaderText;}// 写入数据行for (int row = 0; row < dataGridView.Rows.Count; row++){for (int col = 0; col < dataGridView.Columns.Count; col++){object cellValue = dataGridView.Rows[row].Cells[col].Value;worksheet.Cells[row + 2, col + 1].Value = cellValue?.ToString() ?? "";}}// 自动调整列宽worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();// 保存文件FileInfo excelFile = new FileInfo(filePath);excelPackage.SaveAs(excelFile);}MessageBox.Show("导出成功!");
}

调用方法:

// 调用示例
private void btnExport_Click(object sender, EventArgs e)
{SaveFileDialog saveDialog = new SaveFileDialog();saveDialog.Filter = "Excel文件|*.xlsx";if (saveDialog.ShowDialog() == DialogResult.OK){ExportToExcelWithEPPlus(dataGridView1, saveDialog.FileName);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词