C# SpreadsheetLight从单元格公式中获取数值

C# SpreadsheetLight从单元格公式中获取数值,c#,excel,openxml,C#,Excel,Openxml,有人知道是否可以在电子表格中检索公式的数值吗?如果没有,是否可以将OpenXml中的公式读取为数字 我需要为cellValue返回7.07(8,1) SpreadsheetLight在其站点上有相当好的文档(作为chm下载)。它不适合我,所以我解压缩它并直接访问html文件(chm是一种奇特的zip文件) 您是否尝试过sl.GetCellValueAsDouble或任何其他SLDocument方法?电子表格灯没有计算引擎,因此无法计算单元格公式(截至当前状态)。您得到的值要么是Excel以前计算

有人知道是否可以在电子表格中检索公式的数值吗?如果没有,是否可以将OpenXml中的公式读取为数字

我需要为cellValue返回7.07(8,1)


SpreadsheetLight在其站点上有相当好的文档(作为chm下载)。它不适合我,所以我解压缩它并直接访问html文件(chm是一种奇特的zip文件)


您是否尝试过sl.GetCellValueAsDouble或任何其他SLDocument方法?

电子表格灯没有计算引擎,因此无法计算单元格公式(截至当前状态)。您得到的值要么是Excel以前计算的值(这意味着在您需要该值时它可能已经过时),要么是0(因为SpreadsheetLight没有计算引擎,所以它默认为0或空字符串)


披露:我写了SpreadsheetLight。

在您的环境中
Evaluate()
有效吗?不,我使用的是SpreadsheetLight的插件。comMaybe您应该使用Interop,这很简单,也是最常用的方法。我相信你会得到更多帮助不幸的是,有人告诉我不要在这个项目中使用任何COM对象;我下载了chm文件,但无法读取。我会试试你的解压方法。谢谢,Lou,我打开了chm文件,阅读了名称中包含公式的所有内容,但没有找到任何内容。我开始认为这是不可能的!谢谢你的建议。我在OpenXML公式计算上做了一些搜索,它停止存储公式、计算的最后一个值(与上次Excel保存文档时一样)以及是否需要重新计算单元格的标志,但是没有计算引擎来计算公式。@Vincent Tan是否有办法使用电子表格将工作表从一个工作簿复制到另一个工作簿?是否有其他提供计算引擎的免费Excel库(EPPlus和NPIO除外)?
  public static void TestSlWorkbook()
  {
     SLDocument sl = new SLDocument();
     sl.SetCellValue(1, 1, 1.01);
     sl.SetCellValue(2, 1, 1.01);
     sl.SetCellValue(3, 1, 1.01);
     sl.SetCellValue(4, 1, 1.01);
     sl.SetCellValue(5, 1, 1.01);
     sl.SetCellValue(6, 1, 1.01);
     sl.SetCellValue(7, 1, 1.01);

     sl.SetCellValue(8, 1, "=Sum(A1:A7)");

  }