# excelDown **Repository Path**: shuiyungit/excelDown ## Basic Information - **Project Name**: excelDown - **Description**: 大批量文件上传&下载 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-08-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # excelDown #### 介绍 大批量文件上传&下载 #### 软件架构 软件架构说明 #### 安装教程 1. git clone项目 2. 运行Application.java #### 使用说明 1. 文件下载 经过多次测试,代码有最开始HSSFWorkbook,更迭为XSSFWorkbook,到最后确定的SXSSFWorkbook, 其中HSSFWorkbook产生的文件是2003版本,在面对大批量数据导出时容易崩溃,所以后续改为XSSFWorkbook, 但是XSSFWorkbook依然在导出大批量数据的时候会崩溃,当时的解决方案是打压缩包的方式,后来再次对代码优化时, 发现了SXSSFWorkbook,也就是目前代码中使用的版本,在导出大批量数据的时候,把数据拆分到多个sheet中, 在数据量不大于(800W)时保证一次导出 2. 文件上传 需要注意的是,为了程序能占用最小的内存,上传采用的是2003版本文件,使用jxl上传,若原始文件为2007版本, 建议文件另存为2003版本文件再进行上传。最开始版本采用的是一次性读取所有文件,然后返回一个List。 但是考虑到如果上传文件过大,List就会变得很大,一样会造成内存溢出,所以在原有代码的基础上对代码进行了升级。 在目前版本中,用户需要传入上传的文件,在代码内部,我将读取文件解析成二进制流,然后将二进制流转换为inputstream, 然后读取指定行数据,保证每次读取数据只读取指定位置的数据,返回指定数量的数据,以保证内存不会溢出。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)