我有一个C#应用程序,它必须使用公式创建一个Excel文件。 简单的公式很好。 但是当我使用LINEST(...)时,我得到了一个异常。
初始化对象:
using Microsoft.Office.Interop.Excel;
var Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbook xlWorkBook = xlApp.Workbooks.Add(misValue);
var currentWorksheet = xlWorkBook.Worksheets.get_Item(1);
string myLinestFormulaString ="LINEST(LN(C1:C10);$A1:$A10;TRUE;FALSE)";
以下行导致异常HRESULT:0x800A03EC
currentWorksheet.Cells[12, 3].Formula = myLinestFormulaString; // Write to C12
我知道HRESULT意味着公式字符串有问题。
编辑:问题已解决。 我使用德语版的Excel。在C#中我不得不替换&#39 ;;'用逗号。
答案 0 :(得分:0)
Excel的COM界面使用美国列表分隔符。这就是您在公式中需要,
而不是;
的原因。
尝试:
string myLinestFormulaString = "LINEST(LN(C1:C10),$A1:$A10,TRUE,FALSE)";