【问题标题】:Calculating through Excel sheet通过 Excel 工作表计算
【发布时间】:2012-11-23 10:44:41
【问题描述】:

我有一张 Excel 表格,里面有一些公式。我要做的是填写一个公式,让 Excel 计算它,然后将结果返回给我。

假设我的公式(在单元格 A3 中)如下所示:

 =SUM(A1+A2)

我想做的是从我的 c# 代码中填写 A1 和 A2。比阅读 A3 中的结果。 但是,由于这是一个网站,我希望多个用户能够一次计算。所以我怀疑真的打开文件会占用太多资源。

我到处搜索,发现了这个:SpreadsheetGear。我不确定,但我认为图书馆应该可以解决问题。太糟糕了,对于我需要完成的简单事情来说,这是一种昂贵的方式。

是否有(最好的免费)方法来返回 Excel 根据我的公式计算的值?

【问题讨论】:

  • 读完这篇文章我明白你的意思了。这确实是一个类似的问题。但是我不愿意在网络服务器上安装 Excel :P 必须有其他方法来做到这一点,对吧?
  • 是的,通过代码进行计算。也许你甚至不需要 Excel,但如果它们在逻辑上没有改变,而只是在参数中改变,你可能可以对它们进行硬编码。否则,您将需要一个像您提到的那样的库,我不知道有什么免费的。或者,如果公式发生变化,您可以转储 Excel 并使用rule engine
  • 根据您的应用程序,如果您只是想让多个用户访问电子表格,您可以使用 Google 文档创建电子表格,然后与不同的用户共享。或者,如果您想在后端计算它但希望用户输入 A1 和 A2 的值,您可以使用 Wufoo (www.wufoo.com) 或类似的东西创建一个 Web 表单,并直接从 Wufoo 收集数据并拉取将其添加到您的电子表格中。或者正如@CodeCaster 所说,使用#C 来计算结果。
  • 如果您能向我们提供有关您尝试计算的公式的更多信息,将会有很大帮助。以A1+A2为例,用代码做起来很简单,为什么需要Excel呢?

标签: c# excel


【解决方案1】:

这行得通吗?

        Range r = sheet.get_Range("A1");
        r.Value2 = 1;
        r = sheet.get_Range("A2");
        r.Value2 = 2;
        r = sheet.get_Range("A3");
        r.FormulaR1C1 = "=R[-2]C+R[-1]C";//=(A1+A2)
        int A3_Value = (int)(r.Value2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多