问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

winform dategridview导入,导出excel,数据几万条也不会卡

发布网友 发布时间:2022-04-30 04:43

我来回答

2个回答

热心网友 时间:2023-10-13 15:16

给你个类,直接传那个ddatagridview就行

public void ExportDataGridViewToExcel(DataGridView dataGridview1)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到";

DateTime now = DateTime.Now;
saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0');
saveFileDialog.ShowDialog();

Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridview1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridview1.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridview1.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridview1.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
MessageBox.Show("导出成功");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}

参考资料:http://hi.baidu.com/royler/blog/item/bf5f7aef675d7df5b3fb956c.html

热心网友 时间:2023-10-13 15:16

一楼,好人啊!

这个我也喜欢

热心网友 时间:2023-10-13 15:16

给你个类,直接传那个ddatagridview就行

public void ExportDataGridViewToExcel(DataGridView dataGridview1)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到";

DateTime now = DateTime.Now;
saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0');
saveFileDialog.ShowDialog();

Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridview1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridview1.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridview1.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridview1.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
MessageBox.Show("导出成功");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}

参考资料:http://hi.baidu.com/royler/blog/item/bf5f7aef675d7df5b3fb956c.html

热心网友 时间:2023-10-13 15:16

一楼,好人啊!

这个我也喜欢
c#导出excel慢

这其实最主要是算法的问题,没看到你的程序,只能猜测。如果你的程序是每导出一条数据,都是先连接数据库,再导出数据,再关闭数据库,然后循环完成,虽然在逻辑上没问题,且少量数据导出时速度上没太大感觉,但大数据量导出时必然出现导出问题。1、应在逻辑上改为,先连接数据库,循环导出完成后,再关...

...数据库查询出来的数据,显示在现有的DateGridView中?

string connectionString = "server=服务器ip;database=数据库;uid=用户;pwd=密码";String sqlstr="select * from 表"sqldataAdapter = new SqlDataAdapter(sqlstr, SqlConnection(connectionString));sqldataAdapter.Fill(ds);datagridview1.datasource=ds;这样就了~...

在2007EXCEL中怎样使用窗体控件链接数据

右击“列表框”,执行快捷菜单命令“设置控件格式”,单击“控制”选项卡,“数据源区域”中输入“$A$2:$A$5”(不含引号)、“单元格链接”中输入“$B$1”,“选定类型”中单击选中“单选”,单击“确定”按钮。 此时,拉动A1的列表框右侧垂直滚动条,单击选择列表框中的数据“北京”,在B1单元格中显示数据“1”。

winform导入导出excel winform导入excel数据 datagridview数据绑定 datagridview修改数据 winform导出excel winform保存数据excel dategridview选中行 dategridview添加行 winform怎么获取excel
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重本和一本一样吗 永劫无间是第几人称:小说叙事视角分析 名字未定(第三人称双男主 周霖 温宿) 我得了职业病〈轻度苯中毒〉,有职业病诊断证明书.工伤认定期间我没上... ...后来感觉麻烦,就直接去药店买药,他开了很多 这是十年前的功放,求高手看看那几个孔是什么? 车子断保险之后再交是一样的吗 车险断交后再续交 女性查激素六项什么时候检查 有一个素质很低下的室友是一种什么样的体验? 新鲜笋子煮麻辣鱼怎么做 笋子煮麻辣鱼的做法 男孩在长到多少岁之后,身高就会定型了? ...C#,winform,如何将dataGridview的数据导出到Excel表中? 不引用Excel Com组件,c# Winform datatable或dataset或DataGridView导出Excel的方法 男孩在长到多少岁之后,身高才会“定型&quot;?为什么呢? c#.net winform 中dataGridView数据如何导出到excel中,急等... 男生一般到多少岁就不会长了 如何使用c#将Winform下DataGridView中内容导出到Excel 男生一般个子多少岁就不会长了 C#winform中如何把表导出到EXCEL 指纹打卡机的概念含义 男孩子一般长到多少岁就不长了 男孩一般身高长到多少周岁就停止程长了? 梦见公司的员工早退被我发现了 小米云服务浏览器不用密码怎么就能进去 小米云服务怎样恢复浏览器书签? 登陆小米云服务 提示要升级浏览器 但是我的确认是IE8了,怎么回事 小米云里的云相册,里的浏览器上传是干什么的,怎么用 小米云服务浏览器 红米手机的小米云服务可以同步手机自带的浏览器功能吗? 笔记本硬盘坏了 120g的 应该多少钱啊? 指纹打卡机,工号密码打卡,打卡成功了,打卡机说谢谢,就证明打卡成功了是吗?打卡机里有打卡记录吗?_百度问一问 男生一般到多少岁就不长个了 高分求一段可执行的代码:实现C#,winform中,datagridview控件表格导出excel的功能,急~~~~~ 用c#代码导出Excel模板 男生一般长到什么年龄就不长了 winform的datagridview导出excel如何让格式保持不变 男生长个子一般多少岁停止 C#winform 两个datagridview中的数据一键导出到同一个excel中两个sheet页里 男生多少岁不长个子了 指纹打卡机的特性 C# WinForm 用到DataGridView控件,怎么将已经生成好的excel文件导入到D... 如图c#winform中右边有四个textbox,一个botton,希望通过单击botton导出textbox数据到excel中,求代码 男生一般多少岁不会再长高了 C#winform 将excel中的数据导入到datagridview中 如何将C#中datagrid中的数据导入到excel中 男孩子身高成长到多少岁才不会长? C# 自己写的Winform程序批量导入Excel文件到Oracle数据库的过程中,程序运行会很慢!而且Winform窗体会卡 保定公积金提取需要什么手续 怎样才能把微信限额从10万提高到20万?微信零钱限额10,还开通不了微众银... 如何用C#的winform程序对Excel表格进行增删修查