Имея некоторые проблемы при анализе чисел из следующего листа расширения Excel.Excel Interlop Value vs Text vs Value2
Код:
var curQOH = toolkit.ExcelWorksheet.Cells[i, 28] as Range;
var curQAV = toolkit.ExcelWorksheet.Cells[i, 29] as Range;
if (!curQOH.Text.Contains("("))
Int32.TryParse(curQOH.Text, out lastQOH);
else
Int32.TryParse(curQOH.Value as string, out lastQOH);
if (!curQAV.Text.Contains("("))
Int32.TryParse(curQAV.Text, out lastQAV);
else
Int32.TryParse(curQAV.Value as string, out lastQAV);
Код выше разбирает положительные числа просто отлично. Без вопросов. Но похоже, что он не может проанализировать отрицательное число.
Насколько я знаю, текст должен дать мне то, что видит зритель, поэтому я бы получил (10) как результат. Значение действительно дает правильное число, но я не могу разобрать, что после кастинга в строку. (Этот вопрос, почему я не могу хранить значение как строку или брось в целое, Excel cell value as string won't store as string)
Я рекомендую использовать EPPlus библиотеку с открытым исходным кодом, а не Interop. Это гораздо приятнее в использовании. –
Я всегда использовал 'Value2', который затем преобразую в' string' для синтаксического анализа. Но (если я правильно читаю ваш код), вы будете пытаться разобрать '@" (10) "' на 'int', который не удастся. –
@StephenRoss Я проверяю, имеет ли он (символ, поэтому я делаю значение, которое должно дать -10, а затем я разбору на int. –