public static Testplan ParseFile(string filePath)
{
ApplicationClass excel = new ApplicationClass();
excel.Visible = true;
excel.Workbooks.Open(filePath, false, false, null, null, null,
true, null, null, null, null, null, null,
null, null);
// А все таки фигово, что в 3-м Сишарпе нет именованных аргументов
// и аргументов по умолчанию. Ждем-с 4-го Сишарпа :(
return new Testplan(null, null, null);
}
Тоже самое, только на Perl:
my $Book = $Excel->Workbooks->Open( {
FileName => $FILE_NAME,
UpdateLinks => 0,
ReadOnly => 1,
IgnoreReadOnlyRecommended => 1,
}
) or die("Cannot open file $FILE_NAME");
UPD:
На самом деле, пропущенные параметры нужно заполнять при помощи значения Missing.Value, которое описано в System.Reflection. В противном случае (если использовать null), можно нарваться на Exception.
excel.Workbooks.Open(filePath, false, false, Missing.Value, Missing.Value, Missing.Value,
true, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
3 коммент.:
Именованые аргументы заменит ассоциативный массив
Да, но это будет выглядеть все равно не очень красиво. В 4-м шарпе оно наконец-то будет как надо.
К тому же, Workbooks.Open не имеет перегрузки, принимающую ассоциативный массив :(
тут обращаться нужно не к шарпу, язык не виноват, а к майкрософту, который так и не избавился от привычки тулить по 15 аргументов в одну ф-ция, в WinAPI это еще хоть как-то понять можно, но тут...
Отправить комментарий