none
海量数据如何导出到excel 里? RRS feed

  • 问题

  • 嗯,海量数据如何导出到excel 里。一个excel文件里最多能放多少条数据?SQL表里数据量太大了怎么办啊? 海量数据导出该怎么做啊?也就是能不能分批导出啊?一个.xls 放不下的话,自动创建一个新的.xls 文件,接着导出?或是还有什么好的办法?请各位版主帮帮我吧?

    我想让它们显示在一个Gridview 里,然后,按页导出能做吗?(比如:导出第几页到第几页),还有全部导出时,又该怎么办啊?(这表的数据现在已有18万了)
    有什么好的办法吗?还有海量数据做查询要注意些什么?才能提高检索速度?(除了创建索引外)
    2009年10月16日 9:44

答案

  • 你好!

    excel 2003 只支持 65000 多行,excel 2007 支持 104 万行。18 万的数量并不算多,提高效率最有效的办法就是优化 SQL 及设置合理的索引。


    知识改变命运,奋斗成就人生!
    2009年10月16日 10:09
    版主
  • 我补充一下:
    1.EXcel版本对数据导出确实限制。2003里每个长度是256,2007里限制可能去掉了。然后最多数据条数,2003只有65536行。2007应该是增加了。
    2.海量数据采用数据库数据导出向导比较快。SQL Server数据库导出到EXCEL,你看一下,以前2003版本,导出的EXCEL格式是2003,很多太长的字段久截断了。我以前做数据导出的时候发现的问题。
    3.因为数据太大,导致的问题就是导出时候比较耗内存,很慢。能直接利用数据库向导导出最好。
    4.如果你想在Gridview 按页导出,不知道你的分页如何实现,是否是数据也分页查询,这个和全部加载到DataSet里效率不同。
      建议自己在C#代码里直接写EXCEL文件,这个开发网上代码很多,你需要在项目里引用office的组件。
      尽量借助SQL Server工具完成,中间数据周转的次数越少越好。是在非要写代码,久直接操作数据库,然后写文件。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年10月16日 10:38
    版主
  • 你好!
         一般不建议把海量的数据放到excel文件中!还是应该保存在Sql Server中
         如果一定要做,需要保存到多个文件中,这样相当难维护!
    周雪峰
    2009年10月16日 12:01
    版主
  • 6 M已超过了单元格能支持的最大长度, 建议你考虑其它方式来实现,比如每一扁文章导出一个文本文件。
    知识改变命运,奋斗成就人生!
    2009年10月20日 10:01
    版主

全部回复

  • 你好!

    excel 2003 只支持 65000 多行,excel 2007 支持 104 万行。18 万的数量并不算多,提高效率最有效的办法就是优化 SQL 及设置合理的索引。


    知识改变命运,奋斗成就人生!
    2009年10月16日 10:09
    版主
  • 我补充一下:
    1.EXcel版本对数据导出确实限制。2003里每个长度是256,2007里限制可能去掉了。然后最多数据条数,2003只有65536行。2007应该是增加了。
    2.海量数据采用数据库数据导出向导比较快。SQL Server数据库导出到EXCEL,你看一下,以前2003版本,导出的EXCEL格式是2003,很多太长的字段久截断了。我以前做数据导出的时候发现的问题。
    3.因为数据太大,导致的问题就是导出时候比较耗内存,很慢。能直接利用数据库向导导出最好。
    4.如果你想在Gridview 按页导出,不知道你的分页如何实现,是否是数据也分页查询,这个和全部加载到DataSet里效率不同。
      建议自己在C#代码里直接写EXCEL文件,这个开发网上代码很多,你需要在项目里引用office的组件。
      尽量借助SQL Server工具完成,中间数据周转的次数越少越好。是在非要写代码,久直接操作数据库,然后写文件。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年10月16日 10:38
    版主
  • 你好!
         一般不建议把海量的数据放到excel文件中!还是应该保存在Sql Server中
         如果一定要做,需要保存到多个文件中,这样相当难维护!
    周雪峰
    2009年10月16日 12:01
    版主
  • 谢谢大家。呵呵

    数据量太大了,我想用存储过程分页。这样再导出excel 会不会数据不完整啊?这样能做吗?

    嗯,怎么判断超过多少行了,就新建一个sheet 再接着放?

    单元格存放的数据大小也有限制啊。那我还有两条数据中文章字段放的是6M的文章正文。会不会截断? 
    2009年10月19日 3:46
  • 6 M已超过了单元格能支持的最大长度, 建议你考虑其它方式来实现,比如每一扁文章导出一个文本文件。
    知识改变命运,奋斗成就人生!
    2009年10月20日 10:01
    版主