还是菜鸟时,在某个.Net项目中,用户需要从业务系统导出Report,而数据量通常都在上万条以上,最初采用的方式就是在服务器端用NPOI生成Excel,把Data一行一行一个Cell一个Cell地写到Excel中的每个Cell中,若用户对Report格式要求高一点,还要一个Cell一个Cell设置单元格的Style,然后把Report给用户下载。结果上万条的数据用户导出需要几十分钟。这样导出Report,是个人都要crazy了。。。。。

当时,老板也没给压力,只是说,能不能搞定,搞不定我就从外面找个高手解决,下午4点给我答复,有压力才有动力,终于在某篇技术贴中发现,用NPOI写Excel有更方便更快捷的方式,可以把数据组织成二维数组,一次性写入到Excel中一个Range中,Style也可以通过Range直接设置。优化后,导出上万条数据只需几十秒,老板笑了。贴出最经典的几行代码

Range range = xst.get_Range(excel.Cells[0, 0], excel.Cells[9999,9999]);

range.Value2 = datas;  //datas为一个二维数据数据

今年又在Java项目中,昔日的菜鸟也成了带头大哥,某小弟用常规的思路导出Report,上万条数据竟然需要十几分钟,还时不时地报内存溢出,实在时让人崩溃。查了下API,Java的apache中的POI却没有Range写入Excel的接口,但却提供了通过XML一次性写入Excel的方式,Demo了一下,写入20万数据到Excel,只需9秒。这次我笑了。。。。

参考以下网址:

http://libjakarta-poi-java.sourcearchive.com/documentation/3.6plus-pdfsg/BigGridDemo_8java-source.html

QQ:251171985

E-Mail: jthuahua@126.com

oh my god,写20万数据到Excel只需9秒的更多相关文章

  1. 写20万数据到Excel只需9秒

    on my god,写20万数据到Excel只需9秒   还是菜鸟时,在某个.Net项目中,用户需要从业务系统导出Report,而数据量通常都在上万条以上,最初采用的方式就是在服务器端用NPOI生成E ...

  2. sqlite--一秒20万数据

    参考博文:https://blog.csdn.net/weixin_35261786/article/details/78222602 #include <iostream> #inclu ...

  3. DataTable 快速导入数据库——百万条数据只需几秒

    public void InsertTable(DataTable dt, string TabelName, DataColumnCollection dtColum) { string str = ...

  4. 导出数据到Excel --使用ExcelReport有感

    先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...

  5. 仅需1秒!搞定100万行数据:超强Python数据分析利器

    前言 使用Python进行大数据分析变得越来越流行.这一切都要从NumPy开始,它也是今天我们在推文介绍工具背后支持的模块之一. 2 Vaex Vaex是 一种更快.更安全.总体上更方便的方法,可以使 ...

  6. Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据

    本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称“镇站之宝”的视频,拥有着数量极其恐怖的评论和弹幕.所以这次我们的 ...

  7. 帮我做个APP,给你20万,做不做?

    一.为什么要写这篇文章 前段时间,有个辞职 创业的同事(做法务的)  问我 开发一个 新闻类的APP要多少钱,产品.UI.接口.后台管理页  他们啥都没有,想全部外包. 我 并没有在外包公司做过,也没 ...

  8. 100+诡异的数据集,20万Eclipse Bug、死囚遗言等

    摘要:近日,Robert Seaton整理了100多个最有趣的数据集,其中包括Jeopardy真题,死囚的最后一句话,20万个Eclipse Bug,足球比赛相关,柏拉图式的爱情,太阳系以外的行星,1 ...

  9. Kafka支持单集群20万分区

    Kafka支持单集群20万分区 之前网上关于确定Kafka分区数的博客多多少少都源自于饶军大神的文章,如今他带来了这方面的第二篇文章,特此翻译一下,记录一下其中的要点. 原贴地址: https://w ...

随机推荐

  1. vue axios拦截器加全局loading

    import axios from 'axios' import util from './util' import {showFullScreenLoading, tryHideFullScreen ...

  2. 获取web.config配置文件的sectionGroup

    1)web.config 文件内容如下: <configuration> <configSections> <sectionGroup name="KaiXin ...

  3. Enabling granular discretionary access control for data stored in a cloud computing environment

    Enabling discretionary data access control in a cloud computing environment can begin with the obtai ...

  4. 简明Python3教程 11.数据结构

    简介 数据结构基本上就是 – 可以将一些数据结合到一起的结构,换言之用于存储一组相关的数据. python拥有4种内建数据结构 – 列表,元组(tuple),字典和集合. 我们将看到如何它们,它们又是 ...

  5. echarts学习(上)

    echarts 学习之路 学习思路 初识echarts 编写自己的echarts图表 根据需求编写工作中的echarts图表[进阶篇] github地址:https://github.com/liso ...

  6. POJ 1438 One-way Traffic

    意甲冠军: 与 http://blog.csdn.net/houserabbit/article/details/38958891 类别似  仅仅不是将原本的无向图变为混合图 思路: 在上一篇我也写过 ...

  7. WPF自定义LED风格数字显示控件

    原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP11199988899/article/de ...

  8. Distinct去除重复项

    之前在做权限模块时,因不同角色可能拥有相同的菜单,导致呈现在浏览器上时出现重复菜单项,所以需要在获取用户拥有菜单项时需要过滤重复项, 用到了Distinct,两个重载 public static IQ ...

  9. 构建自己的PHP框架(composer)

    完整项目地址:https://github.com/Evai/Aier Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统.Compo ...

  10. Linux crontab 语法和具体的例子

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...