04.07.2014, 17:01 | #1 |
Участник
|
getFieldValue возвращает ноль вместо строки
здравствуйте!
В документа эксель есть столбец, в формате ячейки тип поля стоит "общий". Первое значение стоит 545455'. Второе значение 'EX239' При импорте первое значение успешно вытаскивает.А второе значение вытаскивает как ноль. В ExcelImportADO написано в комментариях что по умолчанию все возвращается в виде строки. (ПРИЧЕМ ЕСЛИ В ЭЕКСЕЛЕ ФОРМАТ ЯЧЕЙКИ сделать текстовый то вытаскивает нормально, но мне надо чтоб вне зависимотси от типа ячейки принималось как строка). Подскажите пожалуйста Вот код ----------- #CCADO X++: static void DAF(Args _args) { ExcelImportADO doc = new ExcelImportADO(@'c:\backup\777.xlsx', #adOpenStatic); ; doc.openFile(false); while(!doc.eof()) { //if (strlen(c)>1) //{ //info(doc.getFieldValue(1)); info(doc.getFieldValue('Замена')); //} doc.moveNext(); } doc.finalize(); } Последний раз редактировалось mazzy; 04.07.2014 в 20:46. |
|
05.07.2014, 00:07 | #2 |
Участник
|
Ничего не получится ADO шибко умное: если в первой строке идёт в ячейке число или нечто на него похожее, то ADO считает, что и дальше во всей колонке идут числа, и поэтому приводит данные к числовому формату. Если же данные к выбранному формату не приводятся, то в результате получается "пустое" значение выбранного базового типа, в данном случае 0, и на файлах больше 16-и строк ничего с этим не сделаешь. По этой причине применительно к чтению Excel-файлов я лично давно забил на ADO, несмотря на его скорость: мне моё время и нервы дороже.
Последний раз редактировалось gl00mie; 05.07.2014 в 00:09. |
|
|
|