Во вложении - проект с семейством классов SysExcel, переписанным на работу с Excel через .NET (Microsoft.Office.Interop.Excel). Модификация возникла как решение проблемы взаимодействия ядра AX 2009 с офисными приложениями через COM, что подробно описано в темах
Ошибка времени выполнения в ComExcelDocument_RU.findRange() и
Ошибка чтения файлов XLS под Windows 7. Через .NET экспорты/импорты стали работать намного стабильнее и субъективно чуть быстрее.
Чтобы проект скомпилировался, дополнительно нужны модификации, выложенные в темах
Вспомогательные классы проверки условий и утверждений
Класс для преобразования значений между различными значимыми типами
Также для работы модификации, разумеется, нужны установленные сборки, в которых реализованы классы и enum'ы из пространства имен Microsoft.Office.Interop.Excel. Проверялось всё на Ms Office 2010 и ядре AX 2009 SP1 RU6/RU7.
Внимание! Работу с Excel вашего или чужого кода через .NET нужно тщательно тестировать, к примеру, у меня не заработало объединение ячеек, используемое в \Classes\SysDataExcelCOM\addLookup, которое на ура отрабатывает через COM. Включается работа сеймейства SysExcel через .NET в методе SysExcel::mustInteropViaNET(). Я лично не решился пока на тотальное включение взаимодействия с Excel через .NET и сделал метод, который анализирует стек вызовов

и включает работу через .NET в зависимости от того, видит ли он там "разрешенные" классы или нет. За счет этого для включения/выключения работы через .NET не пришлось как-то специально править код, работающий с классами SysExcel, хотя другого рода правки потребовались: пришлось вычистить те места, где работа шла напрямую с COM-объектами, обертками для которых служит семейство SysExcel, в результате пришлось добавить несколько новых классов-оберток.
Для удобства импорта из Excel в SysExcelRange был добавлен метод valueTyped(), возвращающий значение ячейки, приведенное к требуемому базовому аксаптовскому типу. Вся логика преобразования типов реализована в отдельном классе. Также в SysExcelApplication был добавлен метод findRange(), позволяющий найти SysExcelRange из произвольного листа, - по аналогии с одноименным методом из ComExcelDocument_RU.
По непонятным для меня причинам всё семейство SysExcel объявлено как выполняющееся сугубо на клиенте. В моем случае это ограничение снято, чтобы можно было формировать файлы Excel в пакетных заданиях, выполняющихся на сервере, однако, в выложенном проекте эти изменения не отражены.