- EasyExcel 入口类,用于构建开始各种操作
- ExcelReaderBuilder ExcelWriterBuilder 构建出一个 ReadWorkbook WriteWorkbook,可以理解成一个excel对象,一个excel只要构建一个
- ExcelReaderSheetBuilder ExcelWriterSheetBuilder 构建出一个 ReadSheet WriteSheet对象,可以理解成excel里面的一页,每一页都要构建一个
- ReadListener 在每一行读取完毕后都会调用ReadListener来处理数据
- WriteHandler 在每一个操作包括创建单元格、创建表格等都会调用WriteHandler来处理数据
- 所有配置都是继承的,Workbook的配置会被Sheet继承,所以在用EasyExcel设置参数的时候,在EasyExcel...sheet()方法之前作用域是整个sheet,之后针对单个sheet
ExcelProperty指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个混着用怎么去排序的。ExcelIgnore默认所有字段都会和excel去匹配,加了这个注解会忽略该字段DateTimeFormat日期转换,用String去接收excel日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormatNumberFormat数字转换,用String去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormatExcelIgnoreUnannotated默认不加ExcelProperty的注解的都会参与读写,加了不会参与
ReadWorkbook,ReadSheet 都会有的参数,如果为空,默认使用上级。
converter转换器,默认加载了很多转换器。也可以自定义。readListener监听器,在读取数据的过程中会不断的调用监听器。headRowNumber需要读的表格有几行头数据。默认有一行头,也就是认为第二行开始起为数据。head与clazz二选一。读取文件头对应的列表,会根据列表匹配数据,建议使用class。clazz与head二选一。读取文件的头对应的class,也可以使用注解。如果两个都不指定,则会读取全部数据。autoTrim字符串、表头等数据自动trimpassword读的时候是否需要使用密码
excelType当前excel的类型 默认会自动判断inputStream与file二选一。读取文件的流,如果接收到的是流就只用,不用流建议使用file参数。因为使用了inputStreameasyexcel会帮忙创建临时文件,最终还是filefile与inputStream二选一。读取文件的文件。autoCloseStream自动关闭流。readCache默认小于 5 MB 使用内存缓存,达到阈值后使用临时文件缓存;也可显式选择生命周期内不淘汰的 Moka 对象缓存。
sheetNo需要读取Sheet的编码,建议使用这个来指定读取哪个SheetsheetName根据名字去匹配Sheet,excel 2003不支持根据名字去匹配
ExcelPropertyindex 指定写到第几列,默认根据成员变量排序。value指定写入的名称,默认成员变量的名字,多个value可以参照快速开始中的复杂头ExcelIgnore默认所有字段都会写入excel,这个注解会忽略这个字段DateTimeFormat日期转换,将Date写到excel会调用这个注解。里面的value参照java.text.SimpleDateFormatNumberFormat数字转换,用Number写excel会调用这个注解。里面的value参照java.text.DecimalFormatExcelIgnoreUnannotated默认不加ExcelProperty的注解的都会参与读写,加了不会参与
WriteWorkbook,WriteSheet ,WriteTable都会有的参数,如果为空,默认使用上级。
converter转换器,默认加载了很多转换器。也可以自定义。writeHandler写的处理器。可以实现WorkbookWriteHandler,SheetWriteHandler,RowWriteHandler,CellWriteHandler,在写入excel的不同阶段会调用relativeHeadRowIndex距离多少行后开始。也就是开头空几行needHead是否导出头head与clazz二选一。写入文件的头列表,建议使用class。clazz与head二选一。写入文件的头对应的class,也可以使用注解。autoTrim字符串、表头等数据自动trim
excelType当前excel的类型 默认xlsxoutputStream与file二选一。写入文件的流file与outputStream二选一。写入的文件templateInputStream模板的文件流templateFile模板文件autoCloseStream自动关闭流。password写的时候是否需要使用密码useDefaultStyle写的时候是否是使用默认头
sheetNo需要写入的编码。默认0sheetName需要些的Sheet名称,默认同sheetNo
tableNo需要写入的编码。默认0
Markdown API 不进入带 T/L 的 Java 风格读取 builder,而是由 EasyExcel 提供独立转换入口:
use easyexcel::markdown::{
MarkdownConversionMode, MarkdownFormulaPolicy, MarkdownMergePolicy,
MarkdownTypeInference,
};
use easyexcel::EasyExcel;
let export_report = EasyExcel::export_markdown("report.xlsx", "report.md")
.mode(MarkdownConversionMode::Auto)
.formula_policy(MarkdownFormulaPolicy::CachedValue)
.merge_policy(MarkdownMergePolicy::AnchorWithWarning)
.do_export()?;
let import_report = EasyExcel::import_markdown("tables.md", "report.xlsx")
.type_inference(MarkdownTypeInference::Conservative)
.apply_header_style(true)
.do_import()?;| Builder 方法 | 类型 | 作用 |
|---|---|---|
profile |
MarkdownProfile |
选择 AgentStable 或 HumanReadable 输出契约。 |
mode |
MarkdownConversionMode |
Auto、Event、Workbook;显式不兼容时返回错误。 |
all_sheets/sheet_name/sheet_index |
— | 选择全部、按名称或按零基下标选择工作表。 |
formula_policy |
MarkdownFormulaPolicy |
缓存值、表达式、表达式与缓存值。 |
merge_policy |
MarkdownMergePolicy |
锚点 warning、重复锚点、HTML fallback 或遇到 merge 报错。 |
include_hidden |
bool |
是否输出隐藏工作表;默认跳过并记录 warning。 |
limits |
ResourceLimits |
文件、行、列、单元格字符、输出字节等资源上限。 |
password |
String |
读写加密 XLSX,或读写 BIFF8 CryptoAPI RC4 .xls;密码只保存在 builder 生命周期内。 |
| Builder 方法 | 类型 | 作用 |
|---|---|---|
table_name/table_index |
— | 选择一个 Markdown table;多表写 CSV 时必须选择。 |
conservative_types |
— | 保留 007、电话号码等前导零标识符。 |
type_inference |
MarkdownTypeInference |
Text、Conservative 或 Aggressive。 |
apply_header_style |
bool |
将 Markdown 表头映射为统一粗体表头样式。 |
limits |
ResourceLimits |
限制输入文件、表格、行列和单元格大小。 |
MarkdownConversionReport 返回实际模式、工作表/表格/行/单元格数量、输出字节和结构化 warnings。Markdown 不表达完整 Excel 对象,因此调用方不得把无 warning 当作无损 roundtrip 的普遍保证。
普通 Rust 用户只依赖 easyexcel,通过门面命名空间使用内部基础能力:
use easyexcel::csv::{CsvReadOptions, CsvWriteOptions};
use easyexcel::io::{Format, ResourceLimits};
use easyexcel::markdown::{MarkdownExportOptions, MarkdownImportOptions};
use easyexcel::model::{Cell, TabularDocument, Workbook};easyexcel::{csv, io, markdown, model, formula, tabular, xls, xlsx} 是基础 crate 公共类型的直接重导出,不创建 easyexcel_core 第二入口。