2016-11-04 69 views
0

我有一个C#应用程序必须使用公式创建Excel文件。 简单的公式工作正常。 但是,当我使用LINEST(...)我得到一个异常。通过C#LINEST创建Excel表格

初始化对象:

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#中,我必须替换';'用逗号。

+3

您是否尝试过的'''代替;'你的表现公式? – hofmeister

回答

0

Excel的COM接口使用美式列表分隔符。这就是为什么你需要,而不是你的公式中的;

尝试:

string myLinestFormulaString = "LINEST(LN(C1:C10),$A1:$A10,TRUE,FALSE)";