Winform程序高效率把datatable数据导出excel 在线等

走着看世界 2015-01-06 01:55:07
获取的datatable数据集导出excel,现在150条,表50列的数据,使用excel.dll导出,效率很低,需要20秒左右,请教winform下导出excel的高效代码。
...全文
1596 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
走着看世界 2015-01-06
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
使用流导出的其实是个文本文档,只不过用excel能打开 你也可以按照文本文档的形式重新读取出来 或者试试这个
引用 6 楼 Z65443344 的回复:
使用流导出的其实是个文本文档,只不过用excel能打开 你也可以按照文本文档的形式重新读取出来 或者试试这个
嗯,采用你给的连接解决了问题, 感谢all。
  • 打赏
  • 举报
回复
引用 5 楼 u012597229 的回复:
[quote=引用 4 楼 duanzi_peng 的回复:] [quote=引用 2 楼 u012597229 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 使用流,参见: http://blog.csdn.net/duanzi_peng/article/details/17414629
嗯,刚才使用了的确导出很快,但存在一个问题,导出的excel不能导入了。项目要求是导出还需要支持导入。[/quote] 导入是另一个功能了。读取excel为datatable,网上有代码,使用拼接sql或者SqlBulkCopy 更新到数据库。 http://www.cnblogs.com/shikyoh/archive/2011/07/01/2095633.html[/quote] 嗯,是你说的意思,之前的导出方法,能导入,就是按照excel转为datatable然后循环执行insert的,现在问题是,用流的方式导出了,不能够导入了,在open()的时候出现的错误“外部表不是预期的格式”。[/quote] 这一般都是和你用的excel版本有关系。去网上查查资料吧,具体也说不上来。
於黾 2015-01-06
  • 打赏
  • 举报
回复
使用流导出的其实是个文本文档,只不过用excel能打开 你也可以按照文本文档的形式重新读取出来 或者试试这个
走着看世界 2015-01-06
  • 打赏
  • 举报
回复
引用 4 楼 duanzi_peng 的回复:
[quote=引用 2 楼 u012597229 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 使用流,参见: http://blog.csdn.net/duanzi_peng/article/details/17414629
嗯,刚才使用了的确导出很快,但存在一个问题,导出的excel不能导入了。项目要求是导出还需要支持导入。[/quote] 导入是另一个功能了。读取excel为datatable,网上有代码,使用拼接sql或者SqlBulkCopy 更新到数据库。 http://www.cnblogs.com/shikyoh/archive/2011/07/01/2095633.html[/quote] 嗯,是你说的意思,之前的导出方法,能导入,就是按照excel转为datatable然后循环执行insert的,现在问题是,用流的方式导出了,不能够导入了,在open()的时候出现的错误“外部表不是预期的格式”。
  • 打赏
  • 举报
回复
引用 2 楼 u012597229 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 使用流,参见: http://blog.csdn.net/duanzi_peng/article/details/17414629
嗯,刚才使用了的确导出很快,但存在一个问题,导出的excel不能导入了。项目要求是导出还需要支持导入。[/quote] 导入是另一个功能了。读取excel为datatable,网上有代码,使用拼接sql或者SqlBulkCopy 更新到数据库。 http://www.cnblogs.com/shikyoh/archive/2011/07/01/2095633.html
走着看世界 2015-01-06
  • 打赏
  • 举报
回复
引用 2 楼 u012597229 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 使用流,参见: http://blog.csdn.net/duanzi_peng/article/details/17414629
嗯,刚才使用了的确导出很快,但存在一个问题,导出的excel不能导入了。项目要求是导出还需要支持导入。[/quote] /// <summary> /// 导入数据 /// </summary> private void FileImport() { try { OleDbConnectionStringBuilder connectStringBuilder = new OleDbConnectionStringBuilder(); connectStringBuilder.DataSource = this.txtFilePath.Text.Trim(); connectStringBuilder.Provider = "Microsoft.Jet.OLEDB.4.0"; connectStringBuilder.Add("Extended Properties", "Excel 8.0;HDR=Yes;IMEX=1;"); using (OleDbConnection cn = new OleDbConnection(connectStringBuilder.ConnectionString)) { DataSet ds = new DataSet(); string sql = "Select * from [Sheet1$]"; OleDbCommand cmdLiming = new OleDbCommand(sql, cn); cn.Open(); 。。。。。 open();的时候就 catch出error 外部表不是预期的格式
走着看世界 2015-01-06
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
使用流,参见: http://blog.csdn.net/duanzi_peng/article/details/17414629
嗯,刚才使用了的确导出很快,但存在一个问题,导出的excel不能导入了。项目要求是导出还需要支持导入。

111,083

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧