У меня есть две колонки в листе Excel.Я заполняю первый столбец формулой, и у меня есть некоторые значения во втором столбце.Теперь я хочу сравнить эти два столбца и мне нужно отобразить True / false в третьем столбце.Но когда я использую условие «ЕСЛИ», я получаю ЛОЖЬ.Вот мой код.
Формулировка столбца
using (ExcelPackage xlPackage = new ExcelPackage(newFile))
{
ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets[GetConfigValue("Reconsheet")];
int totalRows = worksheet.Dimension.End.Row;
for (int row = startupRow; row <= totalRows; row++)
{
//Formula
string vlookforH = "IF(ISNA(VLOOKUP(C" + row + ",PWA!A:B,2,FALSE)),0,VLOOKUP(C" + row + ",PWA!A:B,2,FALSE))";
worksheet.Cells[row, 8].Formula = vlookforH;
}
xlPackage.Save();
MessageBox.Show("PWA hours received");
}
Сравнение столбца формулы и столбца нормального значения:
for (int row = startupRow; row <= totalRows; row++)
{
if (Convert.ToInt32(worksheet.Cells[row, 18].Value) != 0)
{
decimal hvalue = (worksheet.Cells[row, 8].Value) != null ? Convert.ToDecimal(worksheet.Cells[row, 8].Value.ToString()) : 0;
decimal rvalue = (worksheet.Cells[row, 18].Value) != null ? Convert.ToDecimal(worksheet.Cells[row, 18].Value.ToString()) : 0;
if (hvalue == rvalue)
{
worksheet.Cells[row, 31].Value = "True";
}
else
{
worksheet.Cells[row,31].Value = "False";
Count = Count + 1;
}
}
}
Когда я отлаживаю приложение, я понял hvalue
всегда равно нулю, потому что это столбец формулы.
Я пробовал по-разному, но не смог найти решение.Может кто-нибудь мне помочь?Что я делаю не так?