C# |
您所在的位置:网站首页 › vb保存数据到excel › C# |
C# | 导出DataGridView中的数据到Excel、CSV、TXT
文章目录
C# | 导出DataGridView中的数据到Excel、CSV、TXT前言DataGridView数据转存DataTableDataTable转Excel方法一、使用Microsoft.Office.Interop.Excel方法二、使用EPPlus库方法三、使用NPOI库
DataTable转CSVDataTable转TXTDataGridView导出数据为JSON、XML格式结束语
前言
从DataGridView中导出数据到Excel、CSV、TXT是开发中非常常见的一种需求。本文将讲解如何高效的完成对这三种格式的单向导出。 倘若直接写三种格式的导出必定会产生大量的重复代码,而从表中获取结构化数据的思路是基本一致的,因此有一个思路是先将DataGridView中的数据转换为DataTable对象,再进一步导出成我们的目标格式。 本文将介绍如何将DataGridView中的数据转换为DataTable格式,并提供将DataTable转换为Excel、CSV、TXT三种格式的例子。 将DataGridView中的数据转换为DataTable格式,有助于我们更方便地对数据进行处理和操作,使我们可以轻松地使用C#中的各种数据处理和操作函数,例如排序、筛选、统计等。 通过本文的介绍和示例,您将能够快速掌握将DataGridView中的数据导出到各种格式的技巧。 DataGridView数据转存DataTable以下是转换的思路: 首先创建了一个新的DataTable对象。然后我们使用DataGridView的列标题和值类型添加了DataTable的列。接下来,我们使用DataGridView的行和单元格值创建了新的DataRow对象,并将其添加到DataTable中。 // 创建一个新的DataTable对象 DataTable dt = new DataTable(); // 添加列 foreach (DataGridViewColumn column in dataGridView1.Columns) { dt.Columns.Add(column.HeaderText, column.ValueType); } // 添加行 foreach (DataGridViewRow row in dataGridView1.Rows) { DataRow dr = dt.NewRow(); foreach (DataGridViewCell cell in row.Cells) { dr[cell.ColumnIndex] = cell.Value; } dt.Rows.Add(dr); } DataTable转Excel 方法一、使用Microsoft.Office.Interop.Excel添加引用: using System; using System.Data; using System.IO; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel;将DataTable转存为Excel文件: public static void Convert(DataTable dt, string filePath) { // 创建一个Excel应用程序对象 Excel.Application excelApp = new Excel.Application(); // 创建一个新的工作簿 Excel.Workbook workbook = excelApp.Workbooks.Add(Type.Missing); // 创建一个新的工作表并命名为“Sheet1” Excel.Worksheet worksheet = (Excel.Worksheet)workbook.ActiveSheet; worksheet.Name = "Sheet1"; // 将DataTable的列名写入工作表中 for (int i = 0; i for (int j = 0; j // 创建一个新的Excel工作簿 ExcelPackage excelPackage = new ExcelPackage(); // 创建一个新的工作表并命名为“Sheet1” ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1"); // 将DataTable的列名写入工作表中 for (int i = 0; i for (int j = 0; j // 创建一个新的Excel工作簿 IWorkbook workbook = new XSSFWorkbook(); // 创建一个新的工作表并命名为“Sheet1” ISheet worksheet = workbook.CreateSheet("Sheet1"); // 将DataTable的列名写入工作表中 IRow headerRow = worksheet.CreateRow(0); for (int i = 0; i IRow dataRow = worksheet.CreateRow(i + 1); for (int j = 0; j workbook.Write(fileStream); } } DataTable转CSV添加引用: using System; using System.Data; using System.IO;将DataTable转存为CSV文件: public static void Convert(DataTable dataTable, string filePath) { // 创建一个写入器 using (StreamWriter writer = new StreamWriter(filePath)) { // 写入表头 for (int i = 0; i writer.Write(","); } } writer.Write(writer.NewLine); // 写入表数据 foreach (DataRow row in dataTable.Rows) { for (int i = 0; i writer.Write(","); } } writer.Write(writer.NewLine); } } } DataTable转TXT添加引用: using System; using System.Data; using System.IO;将DataTable转存为TXT文件: public static void Convert(DataTable dataTable, string filePath, string delimiter = "\t") { // 创建一个写入器 using (StreamWriter writer = new StreamWriter(filePath)) { // 写入表头 for (int i = 0; i writer.Write(delimiter); } } writer.Write(writer.NewLine); // 写入表数据 foreach (DataRow row in dataTable.Rows) { for (int i = 0; i writer.Write(delimiter); } } writer.Write(writer.NewLine); } } } DataGridView导出数据为JSON、XML格式请参考文章:《C# | DataGridView数据转存为Json、XML格式》 结束语希望本文能够对您有所帮助,并使您更加熟悉C#编程语言中的文件导出和数据格式转换技术。 如果您有任何问题或建议,请在下方留言。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |