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

MyExcel

多功能 Excel 工具包
授权协议 Apache
开发语言 Java HTML/CSS
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 伯彦君
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。

定位 | Target

  • 导入:提供简便的API,极低内存读取Excel内容,并转化为List< Bean >。
  • 导出:可快速导出海量数据的简单列表,可生成高复杂度布局的Excel,复杂布局指的是包含多种不规则合并单元格、背景色、字体大小、斜体等,可自动划分Excel生成zip压缩包。

优势 | Advantages

  • 可生成任意复杂表格:本工具使用迭代单元格方式进行Excel绘制,可生成任意复杂度Excel,提供多种宽度策略;
  • 零学习成本:使用Html作为模板,学习成本几乎为零;
  • 支持常用背景色、边框、字体等样式设置:具体参见下方Style-support(样式支持)部分;
  • 支持.XLS、.XLSX、.CSV:支持生成.xls、.xlsx后缀的Excel,支持.csv文件生成;
  • 支持低内存SXSSF模式:支持低内存的SXSSF模式,可利用极低的内存生成.xlsx;
  • 支持生产者消费者模式导出:支持生产者消费者模式导出,无需一次性获取所有数据,分批获取数据配合SXSSF模式实现真正意义上海量数据导出;
  • 支持多种模板引擎:已内置Freemarker、Groovy、Beetl等常用模板引擎Excel构建器(详情参见文档Getting started),默认内置Beetl模板引擎(推荐引擎,Beetl文档);
  • 提供默认Excel构建器,直接输出简单Excel:无需编写任何Html,已内置默认模板,可直接根据POJO数据列表输出;
  • 支持SAX模式读取:支持SAX模式导入海量数据;
  • 支持Excel容量设定:支持设定Excel容量,到达容量后自动新建Excel,可构建成zip压缩包导出;

导入示例

// (推荐)方式一:全部读取后处理,SAX模式,避免OOM,建议大量数据使用
List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class)
        .sheet(0) // 0代表第一个,如果为0,可省略该操作
        .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行
        .beanFilter(ArtCrowd::isDance) // bean过滤
        .read(path.toFile());// 可接收inputStream

// (推荐)方式二:读取一行处理一行,可自行决定终止条件,SAX模式,避免OOM,建议大量数据使用
// readThen有两种重写接口,返回Boolean型接口允许在返回False情况下直接终止读取
SaxExcelReader.of(ArtCrowd.class)
        .sheet(0) // 0代表第一个,如果为0,可省略该操作
        .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行
        .beanFilter(ArtCrowd::isDance) // bean过滤
        .readThen(path.toFile() ,artCrowd -> {System.out.println(artCrowd.getName);});// 可接收inputStream

public class ArtCrowd {
    // index代表列索引,从0开始
    @ExcelColumn(index = 0)
    private String name;

    @ExcelColumn(index = 1)
    private String age;

    @ExcelColumn(index = 2,dateFormatPattern="yyyy-MM-dd")
    private Date birthday;
}

导出示例

List<ArtCrowd> dataList = this.getDataList();
    Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class)
            .build(dataList);
    AttachmentExportUtil.export(workbook, "艺术生信息", response);
    // 加密导出
    // AttachmentExportUtil.encryptExport(workbook, "艺术生信息", response,"123456");
}

  • 作者 吴华辉 推荐理由 因为招投标需求对比单导出结构复杂,引入了myexcel工具实现自定义导出,文章介绍了单元格合并,颜色标记,数据遍历的语法供大家参考。 原因 一些复杂格式的excel不适用于通用的表格工具导出,根据其他项目组的推荐使用了myexcel工具包 使用 github地址:https://github.com/liaochong/myexcel 依赖添加 #Maven <depe

  • MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。 参考:https://www.oschina.net/p/MyExcel 参考:https://github.com/liaochong/myexcel/wiki 定位:     1. 导入:提供简便的API,读取Excel内容,并转化为List< Bean >。     2. 导出:可快速导出海量数据的简单列表,可生成高复杂

  •     使用示例参考请移步:示例 简介 | Brief introduction MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。 优点 | Advantages 可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel,自适应宽度、高度; 零学习成本:使用html作为模板,学习成本几乎为零; 支持常用背景色、边框、字体等样式设置:具体参见文

  • MyExcel--Excel操作新方式 https://github.com/liaochong/myexcel  使用示例参考请移步:示例 简介 | Brief introduction MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。 优点 | Advantages 可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel,自适应宽度、高

  • myexcel导出实体类对象。 @ExcelTable(sheetName = "Sheet1",rowAccessWindowSize = 100,useFieldNameAsTitle = true) public class UserExaminationExportExcelItem { @ExcelColumn(order = 1,index = 0,title = "考试

  • 参考: (1)myexcel:https://github.com/liaochong/myexcel/wiki/%E4%BE%9D%E8%B5%96%E6%B7%BB%E5%8A%A0

  • MyExcel.net 使用手册 http://www.myexcel.net.cn/StudyOnline.html[MyExcel.net的简单使用手册]

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

  • 1.概述 Selenium是非常非常有用的,对JavaScript支持良好的Web层功能测试,集成测试工具。 Selenium分为Core与RC(Remote Controll)两个部分,其中Core是基础的,直接在HTML Table里编写测试代码的模块,而Remote Controll则支持用Java等语言编写测试用例,并自动调用FireFox1.5来运行。 具体的语法见http://www.

  • 问题内容: 我有2列需要相互比较的数据-列A和列B。 A栏: B栏: A列的数据量比B列大。 但是它可能没有B列中的所有值。 我需要找出B列中的哪些值也位于A列中。 以上样本数据的预期输出: 需要使用SQL Server / T-SQL来获得此输出。 A列和B列是2个独立表中的字段 2个表中没有其他列 感谢你的帮助! 问题答案:

  • 本文向大家介绍GUI功能测试工具HP UFT vs Selenium,包括了GUI功能测试工具HP UFT vs Selenium的使用技巧和注意事项,需要的朋友参考一下 当我们谈论测试自动化时,我们会自动考虑可简化测试任务的工具。这些工具可以分为两大类-免费软件和许可工具。免费软件工具是可通过Internet免费获得的开源工具。这种工具的可靠性要差得多。但是,当我们谈论许可工具时,这些工具是具有

  • 问题内容: 这相当不错,但是我正在尝试学习/理解python中的函数式编程。如下代码: 产生: 问:有没有一种方法可以在python中使用map或任何其他功能工具来产生以下内容而没有循环等。 顺便提一下,如果foo和bar之间存在依赖关系,则实现将如何更改。 例如 并打印: PS:我知道如何使用if,循环和/或生成器天真地做到这一点,但是我想学习如何使用功能性工具来实现这一点。 这仅仅是在mapt

  • “铅笔”工具已经恢复了 Illustrator 早期版本中的工具所具备的优良、精细的控制功能。 增强的“铅笔工具选项”对话框 增加了一个“保真度”预设 “保真度”滑块目前有 5 个预设。现在已增加了一个新的滑块预设(最准确的预设),可以帮助您绘制出最准确的可能路径。同时,这个新增加的预设已被添加到“平滑工具选项”对话框。 使用 Alt 键可以切换到平滑工具选项 选中此复选框后,使用“铅笔”工具或“