Как проанализировать значения формулы как текст в Excel через C # - PullRequest
2 голосов
/ 05 апреля 2011

Мне нужно разобрать некоторые данные из файла MS Excel.

Ячейки, из которых мне нужно получить данные, имеют текст формулы в качестве значения.

Например:

Sheet 2 [A1].Value = "$50"
Sheet 1 [A1].Formula = "='Sheet2'!A1"

Когда я беру значение для Sheet1 [A1], я получаю ='Sheet2'!A1, а не $50.

Есть ли способ получить текстовое значение после вычисления формулы из Sheet1[A1] с помощью C #?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Вот что я получил, используя Microsoft.Office.Interop.Excel, как упомянуто Rup

using Microsoft.Office.Interop.Excel;

string fileName = @"C:\TestSheet.xls";
Application xlApp = new Application();
Workbook book = xlApp.Workbooks.Open(fileName);
Worksheet sheet = xlApp.Worksheets[1];
Range range = sheet.get_Range("A1");
Console.WriteLine(range.get_Value(XlRangeValueDataType.xlRangeValueDefault));
0 голосов
/ 05 апреля 2011

Я не уверен, какой элемент Range обрабатывает этот набор, но я предполагаю, что он равен Value2 и не является общим вводом так же, как в электронной таблице. Попробуйте:

Sheet1[A1].Formula = "='Sheet2'!A1";
Console.Out.WriteLine(Sheet1[A1].Value2);

явно установить это как форум. Вам также может потребоваться выполнить пересчет, но я бы не ожидал.

...