首页 新闻 会员 周边 捐助

一百五十万条数据导出到EXCEL

-4
悬赏园豆:30 [已关闭问题] 关闭于 2014-11-14 17:09

最近有一个需求,就是用户点击WEB页面“导出”按钮时把SQL SERVER数据库中一张表的数据导出到EXCEL,然后再下载下来。网上的解决方案感觉不太满意,故来园子求大神们来讨论一下,提个解决办法。奖励不多,只求解决问题,大家共同进步!

越老越菜的主页 越老越菜 | 菜鸟二级 | 园豆:284
提问于:2014-09-16 17:11
< >
分享
所有回答(6)
1

150万的数据全部导到一个excel估计打开都会很费劲,多导几个文件,再不也要多导几个sheet。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-16 17:13
4

excel最大行数,不同版本有所不同。

 Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。

  Excel2003的最大列数是256列,2007以上版本是16384列。

  激活a1单元格,按CTRL+SHIFT+右箭头,选择1行所有单元格,输入=COLUMN(),按ctrl+enter填充,鼠标移到1行最后一个单元格,看到的数字就是Excel当前版本的最大列数。

 

  excel最大行列数总结:在 Excel 2010 和 Excel 2007 中,工作表的大小为 16,384 列 × 1,048,576 行,在 Excel 97-2003 中,工作表的大小为 256 列 × 65,536 行。在 Excel 中,超出最大行列数单元格中的数据将会丢失。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-09-16 17:15

补充,我要开骂了。

解决方案感觉不太满意,

这句话如此欠揍,就好象辛苦花了两个月时间,帮客户做了一个方案,换来一句,不太满意,

至于哪儿不满意,欠奉。

想起来工信部的网站审核。不通过的理由,您的网站不符合工信部相关审核要求,退回。

感觉楼主相当的工信部....

支持(4) 反对(1) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-09-16 17:51

咱以前都是分割出来的  就算150万能导入一个 Excel文件里,打开也会卡死的。

以前是50万的分割 存储多个文件 当然不是针对客户啦

支持(0) 反对(0) 释迦苦僧 | 园豆:238 (菜鸟二级) | 2014-09-17 11:36

@爱编程的大叔: 想帮助的我感谢,不想帮助的我也不埋怨。有高招能赐教的我感激,不想赐教的你别说就行了,没有人强迫你。这都是自愿的,何必呢?

支持(0) 反对(1) 越老越菜 | 园豆:284 (菜鸟二级) | 2014-11-14 09:49
-3

用reader

刘宏玺 | 园豆:14020 (专家六级) | 2014-09-16 17:16
2

导出到excel的方法,我想你是懂的吧?如果不懂,或者你觉得方案不好,应该提导出到excel的优化方案。此处不赘述。

至于150万,是否这个才是关键?

excel的sheet的数据最大记录有限制(你大叔已经有描述,不赘述),明显你的150万是不可能的。

建议:

1、优化导出到excel的方案

2、对数据进行分类,每个大类一个文件夹或文件命名方式

3、再分小类,每个小类一个xlsx文件

4、对分类下的数据再分类(比如按日期)分sheet

5、导出数据

 

至于你大叔的开骂,那确实,别理他,他就一粗人~~~但是呢,你还真的值得你大叔开骂。

大家没义务去帮你解决问题,那是要死脑细胞的。但你有问题总要解决吧?对,要解决问题!

那怎么办?把你遇到的问题细化,比如这个方案的大体策略,存在什么的缺点,希望达到怎么样的效果等等,咱(咱也算你大叔的大叔吧)才好有的放矢啊,要不,有尸米也不能乱拉,对不?

519740105 | 园豆:5810 (大侠五级) | 2014-09-16 17:59

想帮助的我感谢,不想帮助的我也不埋怨。有高招能赐教的我感激,不想赐教的你别说就行了,没有人强迫你。这都是自愿的,何必呢?

支持(0) 反对(1) 越老越菜 | 园豆:284 (菜鸟二级) | 2014-11-14 09:45
0

150W行导出成数据有多大?至少几百M了吧,你http直接下载几百M的东西,你们的服务器这么强?

吴瑞祥 | 园豆:29449 (高人七级) | 2014-09-16 19:32
0

这事我还真干过...

说说我的做法:(整体采用队列实现,所以导出不是及时性的,具体操作就是:客户发起导出任务,过段时间,自己来下载。)

1、利用DataReader写文本文件(csv);

2、利用Excel组件,转换csv到Excel格式并提供现在

幻天芒 | 园豆:37205 (高人七级) | 2014-09-16 19:55

你这个基本就是类似淘宝订单API里面的异步下载了。

基本上的思路肯定是这么干的,好的设计不过是如何更优雅一些。

干这事本身不难,难的是权衡,用户导向及UI设计。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-09-17 11:23

@爱编程的大叔: 确实如此!这种方式能够突破那个行数限制。这个数据量(生成的csv超级大)也必须做队列。对于文件下载,还可以结合ftp来实现。曾近遇到过这么变态的客户,哎 ~

支持(0) 反对(0) 幻天芒 | 园豆:37205 (高人七级) | 2014-09-17 13:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册