У меня есть Excel файл с таблицей tblPhoneCode
и с двумя колоннами Country
и Code
, и у меня есть ячейки B1 с List Data Validation указывая на Country
колонкиEPPlus возвращает #VALUE! вместо содержимого ячейки при использовании формулы OFFSET, КОСВЕННЫЙ & MATCH
и ячейка B2 в основном он отображает Code
для выбранного Country
.
Cell B2 использует следующую формулу
OFFSET(INDIRECT("tblPhoneCode[#Headers]"),MATCH(B1,INDIRECT("tblPhoneCode[Country]"),0),1,1,1)
Все в Excel работает как надо, но вопрос, когда я читаю значение В2 с использованием EPPlus в C# Я получаю #VALUE!
вместо фактического телефона Code
. Я пробовал .Calculate()
из рабочей книги, рабочего листа, в ячейку и пытался получить доступ к значению, все тот же. Я подключил регистратор, и он становится пустым, и в нем нет ошибки.
C# Код
static void Main(string[] args)
{
var excelFile = new FileInfo(@"C:\Users\Ash\Desktop\Epplus.xlsx");
using (var package = new ExcelPackage(excelFile))
{
// Output from the logger will be written to the following file
var logfile = new FileInfo(@"C:\Users\Ash\Desktop\EpplusLogFile.txt");
// Attach the logger before the calculation is performed.
package.Workbook.FormulaParserManager.AttachLogger(logfile);
// Calculate - can also be executed on sheet- or range level.
package.Workbook.Calculate();
Debug.Print(String.Format("Country: \t{0}", package.Workbook.Worksheets[1].Cells["B1"].Value));
Debug.Print(String.Format("Phone Code:\t{0}", package.Workbook.Worksheets[1].Cells["B2"].Value));
// The following method removes any logger attached to the workbook.
package.Workbook.FormulaParserManager.DetachLogger();
}
}
Выход:
Country: US
Phone Code: #VALUE!
Любая помощь или понимание очень ценится, я использую MS Excel 2010, .NET 4.0, EPPlus 4.1.0 и Windows, 10 64-битной
try package.Workbook.Worksheets [1] .Cells ["B2"]. Value.ToString(); –
Я попытался использовать и без '.ToString()' тот же результат, см. Выход. Я даже попробовал '.Text' – Ash
Я вижу, почему бы не использовать словарь в C# вместо чтения значения (код страны), просто прочитайте ключ (название страны) и получите значение из словаря –