При попытке использовать WorksheetFunction.Match(Value,Range,0)
в даты я получаю следующее исключение:
System.Runtime.InteropServices.COMException:
'Unable to get the Match property of the WorksheetFunction class'
Приведенный ниже код работает, если числовой формат в Excel установлен на общий (даты хранятся в виде чисел).
Мое текущее решение состоит в том, чтобы отформатировать столбцы даты в общем и вернуться к формату даты (Великобритания) после завершения.
// using Microsoft.Office.Interop.Excel;
Microsoft.Office.Interop.Excel.Application xlApp =
new Microsoft.Office.Interop.Excel.Application();
xlApp.Application.Visible = true;
Workbook xlworkbook;
Worksheet xlWorkSheet;
string filepath = "C:/test.xlsx";
xlworkbook = xlApp.Workbooks.Open(filepath);
xlWorkSheet = xlworkbook.Worksheets["Sheet1"];
//xlWorkSheet.Range["C:C"].NumberFormat = "0";
//xlWorkSheet.Range["A:A"].NumberFormat = "0";
double foo = xlApp.WorksheetFunction.Match(xlWorkSheet.Range["C1"].Value,
xlWorkSheet.Range["A:A"], 0);
//xlWorkSheet.Range["C:C"].NumberFormat = "dd/mm/yyyy";
//xlWorkSheet.Range["A:A"].NumberFormat = "dd/mm/yyyy";
Console.Write(foo);
Console.ReadKey();
xlworkbook.Close(false);
xlApp.Quit();