Показать сообщение отдельно
Старый 12.01.2012, 13:03   #1  
Димитрий is offline
Димитрий
Участник
 
27 / 12 (1) ++
Регистрация: 10.08.2009
:( Excel. пустые ячейки
Доброго дня.

Сторонняя программа дает Excel-файл. Я его порезал убрав лишнее. Файл в аттаче. Суть в том, что есть данные в первом столбце и нет во втором. И вот такой код есть:

X++:
static void checkExcell(Args _args)
{
    FilePath path='';
    container conFilter = ["Файл  (*.xls)", "*.xls"];
    SysExcelApplication exappl;
    SysExcelCells excells;
    SysExcelWorksheets exsheets;
    SysExcelWorksheet exsheet;
    int row;
    real a,b;
    ;

    path = WinAPI::getOpenFileName(0,conFilter,"", "Укажите файл ",'',"");
    if (!path) return;

    exappl = SysExcelApplication::construct();
    exappl.workbooks().open(path);
    exsheets = exappl.workbooks().item(1).worksheets();
    exsheet = exsheets.itemFromNum(1);
    excells = exsheet.cells();

    for(row = 1;row<3;row++)
    {
        a = excells.item(row,1).value().double();
        //info(strfmt('%1',a));                          // строка 1
        b = excells.item(row,2).value().double();
        info(strfmt('%1',a));                            // строка 2  
        info(strfmt('%1',b));
    }

    exappl.quit();

}
Если закомментировать строку 1, но не 2 то будут выводиться одни данные. Если наоборот, то другие.
Во втором случае выводится ожидаемое. В первом же случае, вместо 0 (в ячейке 2-го столбца пусто) получаем данные из первого столбца.

Если в файле во второй колонке проставить значения, а потом удалить - все опять корректно работает.

Axapta 2009.

В 3-й такой проблемы не наблюдаю.
Вложения
Тип файла: xls Доп1.xls (13.5 Кб, 106 просмотров)
За это сообщение автора поблагодарили: S.Kuskov (2).