Для более гибких шаблонов потребовался сабж, следующий код (в виде расширения ComExcelDocument_RU) упорно не работает, укажите, пожалуйста, где неправ:
X++:
//Возвращает контейнер из строки и столбца именованной области в Excel
public container getNamedCellRowColumn(anytype _anyVal, int _workSheet = 1)
{
COM comWorkSheet;
COM names, name;
COMVAriant tmp;
container ret = connull();
;
if (! m_comDocument)
throw error(strfmt("@GEE6401", this.getApplicationName()));
comWorkSheet = this.getWorkSheet(_workSheet);
comWorkSheet.activate();
try
{
names = comWorkSheet.Names();
name = COM::createFromVariant(names.Item(_anyVal));
//ПАДАЕТ уже ЗДЕСЬ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tmp = name.RefersToR1C1();
ret = [tmp.bStr()];
}
catch
{
checkFailed(strfmt("Чтение из Excel поля %1 завершилось ошибкой",_anyVal));
}
return ret;
}
вызываю
X++:
cnt = excelDocument.getNamedCellRowColumn("ReportType");