【问题标题】:Need to compare two excel files需要比较两个excel文件
【发布时间】:2012-02-01 05:23:30
【问题描述】:

我必须比较两个具有不同工作表数、不同列数/行数、合并单元格、公式等的 Excel 文件。

比较的输出应该允许用户查看添加、删除、修改、重新排列的行/列。整个事情必须使用 C#、.NET 来完成

谁能帮帮我?

【问题讨论】:

  • 第二,请不要在您的帖子上签名。见这里:stackoverflow.com/faq#signatures
  • 为什么不直接使用 Excel 的跟踪功能。
  • AMissco - 我不确定它是否能让我满足我的所有要求。但是我如何在 .NET 客户端中显示差异,这是我的另一个要求。
  • 考虑将这两个文件都转换为 csv。

标签: c# .net excel ms-office


【解决方案1】:

您需要更好地定义您的范围。正如@Brijeesh 所建议的,有像 EPPLus 这样的 3rd 方库,还有用于读取文件的 NPOI。但这不是关于读取文件,而是执行一些“比较”,您已经知道您希望它如何发生。

这个问题太宽泛了,不能像这样在一个线程中回答。

  • 电子表格的格式是否已知?
  • 您是否只想检查某些工作表/列?
  • 您提到想要查看哪些列被重新排列,这意味着首先要知道它们的顺序。再说一遍 - 电子表格的格式是否已知?

您应该开始回答这些问题,并将您尝试做的事情的范围缩小为可管理的任务。

编辑:

VSTO 有其优点,也有缺点(用户必须安装 excel)。 3rd 方库也有起起落落。您应该使用哪种方法来访问电子表格不是这个帖子中的问题。

再次强调 - 一次只专注一件事。你想比较什么,你想怎么做?然后你可以担心你应该使用哪个库。虽然 - 当您准备好提出该问题时,请打开一个单独的问题,以便帖子可以保持主题。

【讨论】:

  • 感谢Origin,但老实说,范围根本没有定义,我需要实现任何东西,例如,可以添加新行,可以添加新列,可以重新添加行-排列,可以重新排列列,可以合并行数据,可以合并列数据,可以添加新工作表等等。对不起..但是是的,我有半生不熟的要求,相信我我在喝汤。 excel表格的格式还没有固定。
  • 那么您可能会问如何从头开始编写 Microsoft Excel。正如@AMissico 已经说过的,如果你真的需要这种级别的跟踪,你可以使用 Excel 的跟踪功能。不要重新发明轮子。
  • 感谢 Origin,但是可以使用 C# API 将跟踪的更改读入应用程序
  • 我不知道 - 您必须阅读 Office Interop 文档。有了这些更改后,您打算如何处理?
  • 再次 - 为什么不能仅使用 Excel 中现有的修订控制来完成?如果您的目标是让他们不需要安装 Excel,那么无论如何您将无法使用 Office Interop。并且 - 使用 NPOI 或 EPPlus 等库实现相同的功能不是一个人的工作。
【解决方案2】:

如果不符合您的要求,请查看 epplus,使用 VSTO/office 互操作

【讨论】:

  • 嗨 Brijesh,在这种情况下,如果我使用办公室互操作,我是否应该逐个单元进行比较。手动编码..如果我错了,请纠正我。
【解决方案3】:

我创建了一个电子表格宏,用于比较两个电子表格并突出显示差异。您必须登录才能下载它,但您可以使用您的 Google 登录。 VBA 代码未锁定,它可能会让您开始将其移植到 C#

http://www.run8tech.com/tools.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多