C# 中的 DataGridView 导出器
Posted
技术标签:
【中文标题】C# 中的 DataGridView 导出器【英文标题】:DataGridView exporter in C# 【发布时间】:2017-02-15 17:46:28 【问题描述】:我在将数据从 DataGridView 导出到 .txt 文件时遇到问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace TSQ
class TxtExporter : IExporter
public void Export(DataGridView dataGrid, Output output)
if (output == null)
return;
string filePath = output.TemplatePath;
try
using (StreamWriter sw = new StreamWriter(filePath))
for (int row = 0; row < dataGrid.Rows.Count; row++)
for (int col = 0; col < dataGrid.Columns.Count; col++)
sw.Write(dataGrid[col, row].Value.ToString());
sw.Write('\t');
sw.WriteLine();
//sw.Flush(); <- also doesn`t work if uncommented
catch (Exception)
//MessageBox.Show(exc.Message);
throw;
当我将大数据从数据库下载到 gridview(超过 35 万条记录)并尝试将其导出到 txt 文件中时,在大约 20 万条记录后我得到“OutOfMemoryException”... 你知道如何从 DataGridView 导出大数据吗?
最好的问候, 迈克尔
【问题讨论】:
您是否尝试过遍历您的 DataGridView 并将内容保存到 StringBuilder(),然后使用 StreamWriter 将该字符串写入您的文本文件? Writing to a text file from DataGridView in C# windows form的可能重复 我正在尝试使用剪贴板,但它运行缓慢并且还会导致内存不足异常:( 【参考方案1】:如果它不必是 .txt,请尝试导出到 Excel。
参考How to Export DataGridView Data to Excel by using Excel Object
【讨论】:
此时我可以选择导出到 Excel - 我只是为这个“ExcelExporter”使用另一个类。但这需要很多时间,而且对于大数据 (>100K),它也会导致 OutOfMemoryException以上是关于C# 中的 DataGridView 导出器的主要内容,如果未能解决你的问题,请参考以下文章
在C#中,如何把DataGridview中的数据导出到一个Excel表中
C#中把datagridview中显示的数据导出到excel中
C# 中 datagridview 绑定BindingList类型和更新
如何将datagridview导出到Open Office Excel c#