当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

easyexcel

Java 解析 Excel 工具
授权协议 Apache
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 傅星光
操作系统 跨平台
开源组织 阿里巴巴
适用人群 未知
 软件概览

easyexcel 是一个 JAVA 解析 Excel 工具。Java 解析、生成 Excel 比较有名的框架有 Apache poi、jxl 。但他们都存在一个严重的问题就是非常的耗内存,poi 有一套 SAX 模式的 API 可以一定程度的解决一些内存溢出的问题,但 POI 还是有一些缺陷,比如 07 版 Excel 解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel 重写了 poi 对 07 版 Excel 的解析,能够原本一个 3M 的 excel 用 POI sax 依然需要 100M 左右内存降低到 KB 级别,并且再大的 excel 不会出现内存溢出,03 版依赖 POI 的 sax 模式。在上层做了模型转换的封装,让使用者更加简单方便。

二方包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>{latestVersion}</version>
</dependency>

 

快速开始

读 Excel

public void noModelMultipleSheet() {
        InputStream inputStream = getInputStream("2007NoModelMultipleSheet.xlsx");
        try {
            ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null,
                new AnalysisEventListener<List<String>>() {
                    @Override
                    public void invoke(List<String> object, AnalysisContext context) {
                        System.out.println(
                            "当前sheet:" + context.getCurrentSheet().getSheetNo() + " 当前行:" + context.getCurrentRowNum()
                                + " data:" + object);
                    }
                    @Override
                    public void doAfterAllAnalysed(AnalysisContext context) {

                    }
                });

            reader.read();
        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

 

写 Excel

@Test
public void test1() throws FileNotFoundException {
        OutputStream out = new FileOutputStream("/Users/jipengfei/78.xlsx");
        try {
            ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX);
            //写第一个sheet, sheet1  数据全是List<String> 无模型映射关系
            Sheet sheet1 = new Sheet(1, 0,ExcelPropertyIndexModel.class);
            writer.write(getData(), sheet1);
            writer.finish();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • EasyExcel 快速生成Excel工具的使用 前言 当我从数据库查询到数据,如何将它变成Excel表格的形式展示 一个简单的导出模板如下 导入依赖 <!-- easyexcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifac

  • EasyExcel 轻松灵活读取Excel内容 写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现,POI 是将整个 Excel 的内容全部读出来放入到内存中,所以内存消耗非常严重,如果同时进行包含大数据量的 Excel 读操作,很容易造成内存溢出问题

  • 什么是easyExcel EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 EasyExcel官方文档地址 下载模板 需要导入数据时,我们一定需要先制定模板,通过模板导入数据。接下来描述的是springBoot读取resource下的文件并下载。templatePath应该是从resource下开始,需要文件名需要加后

  • /** * 实际中如果直接获取原单元格的样式进行修改, 最后发现是改了整行的样式, 因此这里是新建一个样* 式 */ private CellStyle createStyle(Workbook workbook) { CellStyle cellStyle = workbook.createCellStyle(); // 下边框

 相关资料
  • 问题内容: 我有与Excel VBA中相同的问题:解析的JSON对象循环,但是找不到任何解决方案。我的JSON具有嵌套对象,因此建议的解决方案(如VBJSON和vba-json)不适用于我。我还修复了其中之一,使其正常工作,但是由于doProcess函数的许多递归,结果是调用堆栈溢出。 最好的解决方案似乎是原始帖子中看到的jsonDecode函数。它非常快速且非常有效。我的对象结构全部位于类型JS

  • 此格式良好的XML文档使用MS VBA代码馈送到Excel 2007。我成功地使用DOMDocument和IXMLDOMElement导入了名称、城市和产品 但是,xa:MeContext id、vsData1 id、VsData2 id、客户id和订单id不会导出到Excel工作表。 每个Excel行都有以下标题,其中包含从XML文档填充的数据:

  • 问题内容: 我当前的工作流程涉及使用Applescript本质上界定Excel数据并将其格式化为纯文本文件。我们正在向全Swift环境推进,但是我还没有找到任何将我的Excel数据解析为Swift的工具包。 我唯一想到的就是使用C或其他东西并将其包装,但这并不理想。关于解析此数据以在Swift中使用的任何更好的建议? 目的是消除Applescript,但是我不确定在仍然与Excel文件交互时是否有

  • 本文向大家介绍SpringMVC上传和解析Excel方法,包括了SpringMVC上传和解析Excel方法的使用技巧和注意事项,需要的朋友参考一下 示例:导入相关数据(Excel文件),相关的文件数据编辑好。 XML文件配置 再spring的xml文件中配置要上传文件的大小 Jsp界面配置 js文件 Controller配置 分层没有那么的详细,再Controller中做的处理 工具类ExcelU

  • 介绍 Excel操作工具封装 使用 从文件中读取Excel为ExcelReader ExcelReader reader = ExcelUtil.getReader(FileUtil.file("test.xlsx")); 从流中读取Excel为ExcelReader(比如从ClassPath中读取Excel文件) ExcelReader reader = ExcelUtil.getReader

  • 问题内容: 我能够通过读取Excel文件,但它会输出文本以及奇怪的字符。我需要按行读取文件,读取每一列中的数据并将其转换为JSON。 如何逐行读取xls文件? 问题答案: 函数下方将Excel工作表(XLSX格式)数据转换为JSON。您可以向函数添加promise。

  • 问题内容: 下面的每个示例…从解析的JSON字符串遍历对象将返回错误“对象不支持此属性或方法”。谁能建议如何进行这项工作?非常感谢(我花了6个小时在这里问一个答案)。 将JSON字符串解析为对象的函数(可以正常运行)。 循环遍历已解析的对象将返回错误“对象不支持此属性或方法”。 PS。我已经研究了这些库: - VBA的JSON无法获得的例子工作。 - VBJSON有没有包括VBA脚本(这可能工作,

  • 问题内容: 我正在尝试解析从curl请求返回的JSON,如下所示: 上面将JSON分为多个字段,例如: 如何打印特定字段(以表示)? 问题答案: 有许多专门用于从命令行操作JSON的工具,它们比使用Awk进行操作要容易和可靠得多,例如: 您还可以使用系统上可能已经安装的工具(例如使用模块的 Python)来执行此操作,从而避免任何额外的依赖关系,同时仍然可以使用适当的JSON解析器。以下假设您要使