【问题标题】:Paste-Link Excel ranges into C# app将 Excel 范围粘贴到 C# 应用程序中
【发布时间】:2014-07-23 15:57:18
【问题描述】:

我正在编写一个 C# 应用程序,我需要在其中粘贴/链接现有 Excel 文档中的表/范围。

我正在寻找的功能是这样的:

  • 用户可以在打开的 Excel 文档中选择一系列单元格并进行复制
  • 用户切换到我的 C# 应用并执行过去链接...我的应用显示 Excel 中的表格。
  • 用户可以编辑源 Excel 文档 - 这不会自动反映在 C# 应用程序中。但我想提供一个“刷新”按钮,单击该按钮将根据链接的 Excel 工作表中的最新数据更新 C# 应用程序。

我已经知道如何进行基本的复制/粘贴。我不知道如何做这个粘贴链接。请注意,我不想在我的 C# 应用程序中向用户询问任何单元格范围。我只想粘贴剪贴板中已有内容的链接...

如果可以做到这一点的任何想法......都是微软,所以如果不能做到,我会感到惊讶......但我是 C# 新手。

感谢所有输入。

【问题讨论】:

    标签: c# excel


    【解决方案1】:

    我想通了。步骤如下。

    1. 用户在 Excel 工作表中复制一个范围。它以数字形式进入剪贴板 格式,但 CSV 和 ObjectLink 格式特别受关注。
    2. 在 C# 应用程序中,触发粘贴链接功能(这是任何按钮)。
      • 使用 ObjectLink 格式从剪贴板检索数据。这以文本形式出现,其中包含:
        • Excel 版本标识符
        • excel文件的路径
        • R1C1 表示法中的工作表名称和选定范围
      • 将 ObjectLink 数据保存在您的 C# 应用程序中,稍后我们将使用它作为刷新的一部分
      • 使用 CSV 格式从剪贴板检索数据。将其解析并呈现在 C# 应用程序中。我将其转换为 HTML,因为这是我正在构建的内容
    3. 修改原始源 Excel 文件 - 更改原始范围内的单元格中的某些内容 - 保存文件。
    4. 返回 C# 应用程序,触发刷新功能(这是任何按钮)。在您的代码中执行以下操作:
      • 使用步骤 2 中保存的 ObjectLink 数据,使用 Excel 互操作 API 工具在后台打开 Excel 工作表。选择工作表和范围。以编程方式将范围复制到剪贴板。
      • 从剪贴板调用与 2 的最后一步中使用的相同的副本。基本上从剪贴板获取更新后的 CSV 格式的 Excel 数据,并替换您在第 1 步中构建的原始表示。

    虽然我不得不承认,从 C# 打开 excel 文档的 COM 部分有点慢,但它的工作原理就像一个魅力。

    我没有在网上找到任何关于此程序的参考资料...对我来说就像一个魅力。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      相关资源
      最近更新 更多