02.05.2007, 17:37 | #1 |
Участник
|
При экспорте в Excel (Эксель) через Automation "Microsoft Excle 8.0 Object Library" числа округляются до двух знаков после нуля при условии, что в перемунную типа xlRange.Value передается число.
Однако, при использовании форматирования вида "# ##0,000##" (т.е. нам нужно 3-5 знаков после нуля и разделитель разрядов до нуля) и передачи текстового значения все получается отлично. vValue(type variant) dQuantity(type decimal) БЫЛО: Код: vValue := dQuantity; //передается через параметр xlRange.NumberFormat := '# ##0,00###'; xlRange.Value := vValue; Код: vValue=FORMAT(dQuantity); //передается через параметр xlRange.NumberFormat := '# ##0,00###'; xlRange.Value := vValue; |
|
02.05.2007, 17:44 | #2 |
Участник
|
Вроде бы в "Microsoft Excel 11.0 Object Library" таких проблем не наблюдалось
|
|
02.05.2007, 18:05 | #3 |
Участник
|
в Ms Excel 11.0 действительно не сталкивался с такой проблемой.
|
|
02.05.2007, 18:09 | #4 |
Участник
|
Кстати, лучше использовать FORMAT(dQty, 0, 1);
Таким образом при цифрах более 1000 удастся избежать пробелов в группах разрядов. Но это уже RTFM. |
|
02.05.2007, 18:13 | #5 |
Участник
|
Немного не понял в чем влияние изменения кода, но FORMAT() определяет каким образом будет выводиться число.
|
|
16.05.2007, 13:14 | #6 |
Участник
|
Цитата:
Более того правильнее будет писать FORMAT(dUnitPrice, 0, 1). Такая запись избежит ошибок при разбиении верхних разрядов пробелами. Также можно выгружать в шаблоны. |
|
13.05.2013, 06:58 | #7 |
Участник
|
Тема конечно старая, просто хотел оставить заметку, что наблюдаю такую проблему на 'Microsoft Excel 14.0 Object Library'. Ексель(?) округляет до двух знаков. Пробовал и до вывода значений ставить range.NumberFormat := '# ##0,000', и после...
Формат помог, правда так не понял, какие могут возникнуть проблемы при разбиении верхних разрядов пробелами, у меня тысячи выводятся нормально (при простом формате). Спасибо человеку из гипербореи) |
|