Skip to main content

DocxRow

Trait DocxRow 

Source
pub trait DocxRow {
    // Required methods
    fn schema() -> &'static [TableColumn]
       where Self: Sized;
    fn from_row(row: &RowData) -> Result<Self>
       where Self: Sized;
    fn from_row_with_converters(
        row: &RowData,
        registry: &ConverterRegistry,
    ) -> Result<Self>
       where Self: Sized;
    fn to_row(&self) -> Result<Vec<CellData>>;
    fn to_row_with_converters(
        &self,
        registry: &ConverterRegistry,
    ) -> Result<Vec<CellData>>;
}
Expand description

结构体与 DOCX 表格行的双向映射。

类似 easyexcel-rust 的 ExcelRow。通过 #[derive(DocxRow)] 自动生成实现。

对应 Java: com.alibaba.excel.annotation.ExcelProperty + 反射机制

§示例

#[derive(DocxRow)]
struct User {
    #[docx(name = "姓名", order = 0)]
    name: String,
    #[docx(name = "年龄", order = 1)]
    age: u32,
}

Required Methods§

Source

fn schema() -> &'static [TableColumn]
where Self: Sized,

返回列 schema:表头名称、索引和格式提示。

对应 Java: ExcelProperty 注解的 value() / order() / format() 等属性

Source

fn from_row(row: &RowData) -> Result<Self>
where Self: Sized,

从原始单元格值反序列化为结构体(使用默认转换器)。

对应 Java: EasyExcel 内部通过反射将 ReadCellData 映射到字段

Source

fn from_row_with_converters( row: &RowData, registry: &ConverterRegistry, ) -> Result<Self>
where Self: Sized,

使用自定义转换器注册表从原始单元格值反序列化为结构体。

对应 Java: ConverterRegistry + ExcelProperty(converter = ...)

Source

fn to_row(&self) -> Result<Vec<CellData>>

将自身序列化为单元格值列表(使用默认转换器)。

对应 Java: EasyExcel 内部通过反射将字段值转为 WriteCellData

Source

fn to_row_with_converters( &self, registry: &ConverterRegistry, ) -> Result<Vec<CellData>>

使用自定义转换器注册表将自身序列化为单元格值列表。

对应 Java: ConverterRegistry + ExcelProperty(converter = ...)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§