Taoda 是一个基于 Avalonia UI 开发的跨平台套打软件,采用现代化的 MVVM 架构模式。软件能够读取 Excel 文件中的数据,结合 Word 模板批量生成多个 Word 文档,主要用于批量文档生成场景,如批量合同生成、批量证书制作等。
- 📊 Excel 数据读取: 支持 .xlsx 和 .xls 格式文件
- 📄 Word 模板处理: 支持 .docx 格式模板文件
- 🔄 变量自动匹配: 智能匹配 Excel 列标题与 Word 模板变量
- 📁 批量文档生成: 一键生成多个填充数据的 Word 文档
- 🎯 实时预览: 数据预览和变量匹配状态显示
- 📈 进度跟踪: 详细的处理进度和状态反馈
- 目标框架: .NET 9.0
- UI 框架: Avalonia UI 11.3.7
- 架构模式: MVVM (Model-View-ViewModel)
| 组件名称 | 版本 | 用途 |
|---|---|---|
| Avalonia | 11.3.7 | 跨平台 UI 框架,提供现代化的用户界面 |
| Avalonia.Themes.Fluent | 11.3.7 | Fluent Design 主题,提供现代化的视觉效果 |
| Avalonia.Fonts.Inter | 11.3.7 | Inter 字体支持,提供优秀的文字显示效果 |
| Semi.Avalonia | 11.3.7 | Semi Design 主题库,提供丰富的 UI 组件 |
| 组件名称 | 版本 | 用途 |
|---|---|---|
| CommunityToolkit.Mvvm | 8.4.0 | 现代化的 MVVM 框架,提供源生成器支持 |
| 组件名称 | 版本 | 用途 |
|---|---|---|
| MiniExcel | 1.41.4 | 轻量级 Excel 读写库,支持高性能数据处理 |
| MiniWords | 1.0.16 | 轻量级 Word 文档处理库,支持模板填充 |
| 组件名称 | 版本 | 用途 |
|---|---|---|
| Microsoft.Extensions.DependencyInjection | 8.0.0 | 依赖注入容器,管理服务生命周期 |
| 组件名称 | 版本 | 用途 |
|---|---|---|
| Avalonia.Diagnostics | 11.3.7 | 开发时诊断工具(仅 Debug 模式) |
Taoda/
├── Assets/ # 资源文件
├── Converters/ # 数据转换器
├── Models/ # 数据模型
│ ├── ExcelDataModel.cs # Excel 数据模型
│ ├── TemplateModel.cs # 模板模型
│ └── VariableMatchingModel.cs # 变量匹配模型
├── Services/ # 服务层
│ ├── IExcelService.cs # Excel 服务接口
│ ├── ExcelService.cs # Excel 服务实现
│ ├── IWordService.cs # Word 服务接口
│ ├── WordService.cs # Word 服务实现
│ └── FileDialogService.cs # 文件对话框服务
├── ViewModels/ # 视图模型
│ └── MainViewModel.cs # 主视图模型
├── Views/ # 视图
│ └── MainView.axaml # 主视图
├── App.axaml # 应用程序样式
├── App.axaml.cs # 应用程序入口
└── Taoda.csproj # 项目配置文件
- 支持格式:
.xlsx、.xls - 第一行必须是列标题(变量名)
- 后续行为数据记录
- 变量名应与 Word 模板中的占位符对应
示例 Excel 结构:
| 姓名 | 年龄 | 部门 | 职位 |
|--------|------|----------|----------|
| 张三 | 28 | 技术部 | 工程师 |
| 李四 | 32 | 销售部 | 经理 |
- 支持格式:
.docx - 使用
{{变量名}}格式作为占位符 - 变量名应与 Excel 列标题对应
示例模板内容:
员工信息表
姓名:{{姓名}}
年龄:{{年龄}}
部门:{{部门}}
职位:{{职位}}
-
选择 Excel 文件
- 点击"选择 Excel 文件"按钮
- 选择包含数据的 Excel 文件
- 系统会自动读取并显示数据预览
-
选择 Word 模板
- 点击"选择 Word 模板"按钮
- 选择包含占位符的 Word 模板文件
- 系统会自动扫描模板中的变量
-
查看变量匹配
- 系统会自动匹配 Excel 列标题与模板变量
- 在"变量匹配"标签页查看匹配结果
- 确认匹配状态是否正确
-
选择输出目录
- 点击"选择输出目录"按钮
- 选择生成文档的保存位置
-
开始生成
- 点击"开始生成"按钮
- 观察进度条和状态信息
- 等待生成完成
- 文件选择区域: 选择 Excel 文件、Word 模板和输出目录
- 数据预览区域:
- Excel 数据预览标签页
- 模板变量标签页
- 变量匹配标签页
- 操作区域: 生成按钮和进度条
- 状态栏: 显示当前操作状态和结果信息
- 🟢 就绪: 系统准备就绪,等待操作
- 🟡 处理中: 正在处理文件或生成文档
- 🔴 错误: 操作失败,查看错误信息
- ✅ 完成: 操作成功完成
- 操作系统: Windows 10/11, macOS 10.15+, Linux (支持 .NET 9.0)
- .NET 运行时: .NET 9.0 Runtime
- 内存: 建议 4GB 以上
- 磁盘空间: 100MB 以上可用空间
- Excel 输入: .xlsx, .xls
- Word 模板: .docx
- Word 输出: .docx
A: 请检查:
- 文件格式是否为 .xlsx 或 .xls
- 文件是否被其他程序占用
- 文件是否损坏或加密
A: 请确认:
- 占位符格式是否为
{{变量名}} - 变量名是否与 Excel 列标题完全一致
- 模板文件是否为 .docx 格式
A: 请检查:
- Excel 数据是否包含空行
- 数据行数是否与预期一致
- 输出目录是否有足够的磁盘空间
A: 建议:
- 处理大量数据时请耐心等待
- 确保系统有足够的可用内存
- 关闭不必要的其他程序
- 异步处理: 所有文件操作均采用异步模式,保持界面响应
- 内存管理: 智能内存管理,支持大文件处理
- 批量处理: 高效的批量文档生成算法
- 实时反馈: 详细的进度信息和状态更新
- 错误处理: 友好的错误提示和异常处理
- 界面响应: 现代化的 UI 设计,流畅的交互体验
- 模块化设计: 清晰的分层架构,易于维护和扩展
- 接口抽象: 基于接口的服务设计,支持功能扩展
- 配置灵活: 支持多种文件格式和自定义配置
- 开发环境: Visual Studio 2022 或 JetBrains Rider
- SDK: .NET 9.0 SDK
- 包管理: NuGet
# 还原依赖包
dotnet restore
# 构建项目
dotnet build
# 运行项目
dotnet run --project Taoda.Desktop
# 发布项目
dotnet publish -c Release -r win-x64 --self-contained本软件遵循相应的开源许可证,具体信息请查看项目根目录下的 LICENSE 文件。
如有问题或建议,请通过以下方式联系:
- 项目仓库:[GitHub 链接]
- 问题反馈:[Issues 链接]
- 技术支持:[联系邮箱]
最后更新时间:2024年10月