Показать сообщение отдельно
Старый 08.01.2007, 18:33   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Delfins Посмотреть сообщение
Посмотрите класс ComExcelDocument_RU
1. Необходимо уточнить, что смотреть можно, начиная с версии Ax 3.0 SP4. Там действительно в этом классе появляются несколько методов, посвященных именно ИМПОРТУ из Excel. В SP3 про импорт еще "ни слова".

2. Не думаю, что методы эти устроят olesh : _comRange.text() (см. ниже) возвращает содержательный "текст" только для диапазона, состоящего из одной ячейки, например, для A1. Для диапазона из нескольких ячеек, например, для A1:E1 вернется НЕ Null только тогда, когда все ячейки диапазона будут иметь одно и то же неНулл-значение. И вернется, конечно же, как видно из кода ниже, только одно значение (никакой не массив).
Цитата:
Сообщение от ComExcelDocument_RU (Ax 3.0 SP4)
Код:
protected anyType GetValueFromRange(COM _comRange)
{
     //anyType _anyType;
     str _anyType;
 
     _anyType = this.convertVariant2Str(_comRange.text());
     return _anyType;
}
 
str convertVariant2Str(COMVariant cv)
{
    str     retVal;
    switch (cv.variantType())
    {
        case COMVariantType::VT_BSTR:
            retVal = cv.bStr();
            break;
        case COMVariantType::VT_R8:
            retVal =  num2str(cv.double(),-1,-1,-1,-1);
            break;
        case COMVariantType::VT_DATE:
            retval = date2str(cv.date(), -1, -1, -1, -1, -1, 4); //Year as 4 digits
            break;
        case COMVariantType::VT_EMPTY:
            retVal = '';
            break;
        default:
            error("@SYS59922");
            throw Exception::Error;
    }
    return retVal;
}