# ExcelComparer **Repository Path**: age00001/excel-comparer ## Basic Information - **Project Name**: ExcelComparer - **Description**: 一个Windows桌面应用程序,用于对比两个Excel文件的内容差异,支持特征列匹配和详细差异报告生成 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/age00001/excel-comparer - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-03 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Excel内容对比工具 ## 简介 这是一个Windows桌面应用程序,用于对比两个Excel文件的内容差异。工具专注于数值和文本内容的比较,支持指定特征列进行行匹配,并生成详细的文本格式差异报告。 ## 功能特性 - **文件支持**:支持.xlsx和.xls格式的Excel文件 - **内容对比**:只比较数值和文本内容,忽略格式、公式等 - **特征列匹配**:可指定多列作为特征列,用于精确匹配行数据 - **差异报告**:生成包含行号、列名、原始值、新值的详细文本报告 - **用户友好**:直观的图形界面,易于操作 - **性能优化**:支持大文件处理,最大支持100MB或10万行数据 - **进度显示**:实时显示文件加载和对比进度 - **内存优化**:流式读取减少内存占用 ## 系统要求 - Windows 10 或更高版本 - .NET 8.0 运行时 - Excel文件支持.xlsx和.xls格式 ## 安装说明 1. 下载并解压程序包 2. 双击 `ExcelComparer.exe` 运行程序 3. 无需额外安装,开箱即用 ## 使用步骤 ### 1. 选择文件 - 点击"浏览..."按钮选择原始Excel文件 - 点击"浏览..."按钮选择处理后的Excel文件 ### 2. 配置特征列 - 点击"刷新列"按钮加载原始文件的列名 - 在列表中选择一或多个特征列(用于行匹配) ### 3. 执行对比 - 点击"开始对比"按钮 - 等待对比完成,结果将显示在下方的文本框中 ### 4. 保存报告 - 点击"保存报告"按钮 - 选择保存位置,报告将以.txt格式保存 ## 报告格式示例 ``` Excel内容对比报告 ================= 生成时间:2024-01-15 14:30:45 原始文件:原始数据.xlsx 处理文件:处理后数据.xlsx 结果:发现 3 处差异 ⚠ 差异详情: --------- 第5行,列'价格':原始值=100,新值=110 - 数值不匹配 第8行,列'产品名称':原始值=手机,新值=智能手机 - 数值不匹配 第12行在处理文件中缺失 - 行缺失 ``` ## 错误处理 - **文件读取错误**:提示文件不存在或格式错误 - **特征列不存在**:提示重新选择有效的特征列 - **内存不足**:提示文件过大,建议分批处理 ## 技术架构 ### 技术栈 - **前端**:C# WPF (Windows Presentation Foundation) - **后端**:C# .NET 8.0 - **Excel处理**:EPPlus库(.xlsx)+ ExcelDataReader(.xls) - **报告生成**:标准.NET IO库 ### 项目结构 ``` ExcelComparer/ ├── Models/ │ └── Difference.cs # 差异数据模型 ├── Services/ │ ├── ExcelReader.cs # Excel读取服务 │ ├── Comparer.cs # 数据比较服务 │ └── ReportGenerator.cs # 报告生成服务 ├── MainWindow.xaml # 主窗口UI ├── MainWindow.xaml.cs # 主窗口逻辑 ├── App.xaml # 应用程序入口 └── App.xaml.cs # 应用程序配置 ``` ## 开发说明 ### 构建项目 1. 确保已安装 .NET 8.0 SDK 2. 使用Visual Studio 2022或更高版本打开解决方案 3. 还原NuGet包: ```bash dotnet restore ``` 4. 构建项目: ```bash dotnet build ``` ### 运行项目 ```bash dotnet run --project ExcelComparer ``` ### 发布项目 ```bash dotnet publish -c Release -r win-x64 --self-contained true ``` ## 常见问题 ### Q:支持哪些Excel格式? A:支持.xlsx和.xls格式的Excel文件。 ### Q:最大支持多大的文件? A:支持单个文件最大100MB或10万行数据,超过此限制建议使用专业版工具处理。 ### Q:如何处理空单元格? A:空单元格会被视为空字符串进行比较。 ### Q:可以对比公式计算结果吗? A:是的,工具会对比公式计算后的实际值。 ### Q:报告可以自定义格式吗? A:当前版本只支持预设的文本格式,未来版本可能支持自定义模板。 ## 更新日志 ### v1.3.0 (2024-01-15) - 扩展大文件支持,最大支持100MB或10万行 - 添加实时进度显示功能 - 优化内存使用,支持流式读取 - 提升异步处理能力 ### v1.2.0 (2024-01-15) - 新增.xls格式支持 - 优化文件格式兼容性 - 修复已知问题 ### v1.1.0 (2024-01-15) - 完整中文界面和报告 - 中文错误提示和异常处理 - 优化用户体验 ### v1.0.0 (2024-01-15) - 初始版本发布 - 支持基本文件对比功能 - 支持特征列选择 - 支持文本格式报告导出 ## 支持与反馈 如有问题或建议,请联系开发团队。 ## 许可证 本项目采用MIT许可证,详见LICENSE文件。