# tauri-plugin-export
文档导出插件(Excel + DOCX),支持全平台。
[English](./README_EN.md)
## 支持的平台
| Windows | x86_64, aarch64 | ✅ |
| macOS | x86_64, aarch64 | ✅ |
| Linux | x86_64, aarch64 | ✅ |
| Android | arm64-v8a, armeabi-v7a, x86_64 | ✅ |
| iOS | arm64, x86_64 (模拟器) | ✅ |
## 功能特性
### Excel 导出
- **多工作表**: 支持导出多个工作表到单个 Excel 文件
- **复杂表头**: 支持多行表头,自动处理单元格合并(colspan/rowspan)
- **自动样式**: 表头和数据单元格自动应用样式(边框、居中、背景色)
- **类型转换**: 自动将 JSON 值转换为 Excel 单元格内容
### DOCX 报告导出
- **章节结构**: 支持封面、目录、多级标题、正文、表格、附表
- **排版规范**: 预设林业报告排版样式(字号、字体、行距、缩进)
- **页眉页脚**: 支持页眉(项目名称)和页脚(调查单位 + 页码)
- **Word 标题样式**: 使用 Word 内置 Heading1-4 样式,支持自动生成目录
## 安装
### Rust 依赖
在 `src-tauri/Cargo.toml` 中添加:
```toml
[dependencies]
tauri-plugin-export = { path = "../tauri-plugin-export" }
```
### JavaScript 依赖
直接使用 guest-js 中的 API,或复制到项目中使用。
## 配置
### 1. 注册插件
在 `src-tauri/src/lib.rs` 中:
```rust
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_export::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
```
### 2. 配置权限
在 `src-tauri/capabilities/default.json` 中添加:
```json
{
"permissions": [
"export:default"
]
}
```
## 使用方法
### Excel 导出
```typescript
import { invoke } from '@tauri-apps/api/core';
path: 'D:/output/因子一览表.xlsx',
sheets: [{
name: '因子一览表',
headers: [
[{ text: '小班属性', colspan: 5 }, { text: '乔木', colspan: 10 }],
[{ text: '省' }, { text: '市' }, { text: '县' }, { text: '小班号' }]
],
rows: [
['云南省', '昆明市', '富民县', '001'],
]
}]
}
});
```
### DOCX 报告导出
```typescript
import { invoke } from '@tauri-apps/api/core';
sections: [
{ id: 'cover', type: 'cover', content: '<p>森林资源调查报告</p>' },
{ id: 'toc', type: 'toc', title: '目录' },
{
id: 'ch1', type: 'heading', title: '基本情况',
content: '<p>项目区位于...</p>',
children: [
{ id: 'ch1-1', type: 'heading', title: '地理位置', content: '<p>...</p>' }
]
}
],
outputPath: 'D:/output/调查报告.docx',
reportName: '森林资源调查报告',
headerText: '森林资源调查报告',
footerText: '调查单位名称',
}
});
```
## API 参考
### Excel: `export(request)` → `ExportResult`
| path | string | 输出文件路径 |
| sheets | SheetData[] | 工作表列表 |
### DOCX: `export_docx(params)` → `DocxExportResult`
| sections | ReportSection[] | 报告章节结构 |
| docxStyle | DocxStyle? | 样式配置(可选,默认 A4/仿宋/黑体) |
| outputPath | string? | 输出路径 |
| reportName | string? | 报告名称 |
| headerText | string? | 页眉文字 |
| footerText | string? | 页脚左侧文字 |
## 许可证
MIT
Copyright (c) 2026 BiShen <bishen@live.com>
算金山™ (https://www.suanjinshan.com/)