问:百万级数据表导出excel

luoboqian 2008-12-08 04:11:43
之前只写过最多导出几千条的数据到excel,
查了下excel一次导出容量是六万多,
有没有什么办法能实现百万级导入,
如果能导入,那大概的合理时间是多少啊!
...全文
301 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywtywt337 2008-12-09
  • 打赏
  • 举报
回复
我只能 顶顶
SupermanZgn 2008-12-08
  • 打赏
  • 举报
回复
最简单也是最笨的办法,,分批导吧...我试过了,也不用多长时间的...
没有梦想 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 walkghost 的回复:]

解决不合理的问题=浪费时间
[/Quote]

UP
walkghost 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jinjazz 的回复:]
excel2007之前,一个sheet的记录数是65535限制,即便是2007也不要超过这个限制否则会不兼容低版本。

大容量复制还是用bcp导出到txt比较切实。很少有人会打开一个100万数据excel去操作的。
[/Quote]
正解!
解决不合理的问题=浪费时间
liuenfu 2008-12-08
  • 打赏
  • 举报
回复
最快就是用Txt格式汇入,速度很快。
也可以考虑Excel2007,资料的容量变大不少,好像不是很理想。
qap22 2008-12-08
  • 打赏
  • 举报
回复
不懂,up
Robin 2008-12-08
  • 打赏
  • 举报
回复
Excel最大支持65536行
阿彪兄 2008-12-08
  • 打赏
  • 举报
回复
不好意思,没遇到这么大的数据
luoboqian 2008-12-08
  • 打赏
  • 举报
回复
我其实是想导到其他表的,
因为导出了excel也是为保存记录,
然后删除表中的记录,免得数据量过大
luoboqian 2008-12-08
  • 打赏
  • 举报
回复
上面要求那样,我这打工的也不好混,只能硬头皮做
zhangxuyu1118 2008-12-08
  • 打赏
  • 举报
回复
不合理的设计思路。这么多的数据用户怎么看啊,建议用户输入过滤条件后再输出,数量最好控制在1W以下。如果作为中间数据供其他模块使用,那么为什么一定要用EXCEL作为载体呢。
jinjazz 2008-12-08
  • 打赏
  • 举报
回复
excel2007之前,一个sheet的记录数是65535限制,即便是2007也不要超过这个限制否则会不兼容低版本。

大容量复制还是用bcp导出到txt比较切实。很少有人会打开一个100万数据excel去操作的。
满衣兄 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 luoboqian 的回复:]
yfqvip

有没有分sheet的代码看看,
对excel操作的了解比较少

[/Quote]
create proc sp_import
@sheet nvarchar(1000)
as
begin
DECLARE @excfileName nvarchar(1000)
DECLARE @excsheet nvarchar(100)
--declare @sheet nvarchar(1000)
declare @i int
--select @sheet='Sheet1;Sheet2;Sheet3;'
select @i=charindex(';',@sheet)
while @i>0
begin
select @excsheet=left(@sheet,@i-1)
EXEC('SELECT * into tab1 FROM openrowSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;DATABASE='+@excfileName+''',['+@excsheet+']) ')
select @sheet=stuff(@sheet,1,@i,'')
select @i=charindex(';',@sheet)
print @excsheet
end
end

go

exec sp_import 'Sheet1;Sheet2;Sheet3;'
go
luoboqian 2008-12-08
  • 打赏
  • 举报
回复
yfqvip

有没有分sheet的代码看看,
对excel操作的了解比较少
  • 打赏
  • 举报
回复
你到底是导入还是导出?

你可以分开导入或者导出啊,程序控制下就可以了,web还是winform下?
满衣兄 2008-12-08
  • 打赏
  • 举报
回复
只能分页,导到多个sheet.

百万级数据表用普通的方法肯定不行了,能导好几个小时。
用exec master..xp_cmdshell 'bcp 库名.dbo.表名 out F:\A.xls -c -q'方法速度上要快点。
分享大哥 2008-12-08
  • 打赏
  • 举报
回复
利用sqlserver直接导出到excel,这是从sql server 到excel效率最高效的一种方式;
通过存储过程来实现数据的分批量导出;
zhnzzy 2008-12-08
  • 打赏
  • 举报
回复
EXCEL不是最大就6W多条记录吗?能放得下你这么多?
  • 打赏
  • 举报
回复
可以分批,按照主鍵值分幾段
HDNGO 2008-12-08
  • 打赏
  • 举报
回复
导入txt吧~

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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