Нельзя установить свойство numberformat класса range 1с 8

Обновлено: 07.07.2024

Репутация: нет
Всего: нет

1. В процессе работы проги получаются числа типа «1236,603462489653». После сохранения в Эксель получается
«123 660 346 248 969». Как сделать так, чтобы в ячейке Экселя было также как и в Делфи? (Выгружаю в Эксель такой строкой:

Репутация: нет
Всего: нет

У Меня тоже вопрос по данной теме.
Получаем число типа Float, н-р 123657,1212384
Как в его отформатировать, чтобы в ячейке Excell оно выглядело 123 657, 12, то есть имело формат
0.00, с разделением тысяч

Репутация: нет
Всего: 1

Репутация: 15
Всего: 108

1. Установить в Эксель формат ячейки текстовый. Но надёжней, чтоб при форматировании ячейки он не возвращал обять числовой формат сделать так:

этот код добавит перед числом знау апострофа, эксель его не покажет, т.к. распознает это как текстовый формат ячейки, но зато число отобразится как нужно.
2.

3. Открывать эксель не новым сервером, а присединяться к запущенному серверу. там проверять все открытые книги.

Добавлено @ 13:05

"Кто владеет информацией, тот владеет миром"
Уинстон Черчилль

Репутация: нет
Всего: нет

А как процентный формат установить

Добавлено @ 17:22


Нельзя установить свойство NumberFormat класса .
- не работает

Репутация: нет
Всего: нет

Есть число типа float, н-р 0,000000000134.
После записи его в ячейку Excell, оно выглядит как 0(и значение 0) - почему.
Нужно чтобы значение ячейки не было изменено, а имело формат, например, 0.00
Подскажите пожалуйста как быть. (Ухищрения со строками не желательны)

Репутация: 15
Всего: 108

это просто некоторые особенности при работе в разных версиях Excel, этот должен работать. по идее. для стандартных настроек.

"Кто владеет информацией, тот владеет миром"
Уинстон Черчилль

Репутация: нет
Всего: нет

Репутация: нет
Всего: нет

говорит что "Нельзя установить свойство NumberFormat класса Range".

Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.

Репутация: нет
Всего: нет

Как говорится утро вечера мудренее.
Оказывается формат нужно указывать с учётом региональных настроек
вместо

ну или у кого что
хотя сам VB отображает формат с точкой при настройках с запятой.
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

[ Время генерации скрипта: 0.1210 ] [ Использовано запросов: 21 ] [ GZIP включён ]

При сохранении печатной формы из 1с в Excel ячейки с датами сохраняются как общий формат. И это никак не изменить настройками макета печатной формы.

Сначала решил сделать задачу с помощью Excel установленного на сервере 1с, но через некоторое время Excel на сервере начал зависать, потому решил отказаться от такой реализации.

Решил пойти другим путем.

Файл xlsx - это набор xml-файлов в zip-архиве.

1. Для начала нужно распаковать файл в папку на диске.

2. Открываем xml и читаем с помощью ПостроительDOM.

3. Добавляем новый элемент с описанием формата дата в styles.xml. Также у элемента "cellXfs" в атрибуте "count" нужно увеличить счетчик на 1.



Формат определяется по атрибуту numFmtId элемента xf

4. Значение всех текстовых ячеек хранится в файле sharedStrings.xml. Прочитаем все эти значения в переменную элементы_si потом будем получать из этой переменной значения по индексу, который хранится в значении ячейки в файле sheet1.xml.


5. Добавляю ячейки в которых нужно поменять формат в "Соответствие". Ключом в соответствии является номер строки, а значением массив со столбцами.

Находим нужные ячейки на "листе1" в файле sheet1.xml и меняем атрибут "s" на индекс значения формата из файла styles.xml


6. Переносим значение из файла sharedStrings.xml в значение ячейки непосредственно в файл sheet1.xml.

Но в файле sharedStrings.xml хранится текстовое значение ДД.ММ.ГГГГ, его нужно преобразовать к числу в котором хранится дата в Excel.

Удаляем атрибут "t", который обозначает что нужно искать значение в файле sharedStrings.xml по индексу, который хранился в значении ячейки.



7. Записываем изменения в файлах и запаковываем все обратно в zip.

Процедуры одинаково работают, как на клиенте так и на сервере

1С:Комплексная автоматизация 2 (2.4.9.98)

Платформа 1С:Предприятие 8.3 (8.3.16.1148)

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Нравятся такие НИОКРы. Вряд ли в своей деятельности буду использовать, но сама идея работы с Excel файлом через XML-ские плюхи 1Са интересна. (1) Ей сто лет в обед, этой идее. А автор, к сожалению, не упомянул сие, из-за чего у некоторых может сложиться ощущение, что это его, автора, личное открытие.

На заметку Вместо Excel.Application можно использовать OpenXml

У меня года четыре была задача, я ее не смог допинать из за политики.

Нужно было на сервере регламентном задании, быстро формировать огромные Excel прайсы, с оформлением в виде шрифтов, цветов и прочих свистелок.

Обращаться на сервере к MS Excel - оно не успевало за ночь формировать прайсы, надо было это делать без экселя - фомировать текстовй файл в виде xml, а потом его зиповать. Майкрософты кстати не рекомендуют использовать Excel в не интерактивном режиме.

Кто запилит толковый гуайд по работе с экселем без экселя с красивым оформлением ячеек и прочими экселевскми свистелками тот прославится в веках.

NumberFormat = "ДД.ММ.ГГГГ"
А разве можно русскими символами задавать формат числа в Excel? А разве можно русскими символами задавать формат числа в Excel?

Английскими можно всегда.
Русскими - если есть локализация, т.е. если открыть в чисто английском - не сработает.

P.S. в разделе «Язык и региональные стандарты» параметр «Языковые стандарты и форматы»

(8)
я, честно говоря, не думал, что Майкрософт будет заморачиваться и в СОМ-объекте делать числовые форматы в зависимости от локализации. Во всяком случае, макрос, записанный в в русской версии офиса, добавляет такой формат NumberFormat = "[$-ru-Ru,1]dd.mm.yyyy;@". Классная идея! А так же гиперссылки можно прописывать?
Изначально невозможно сохранение файлов с гиперссылкой в ячейке. (10) да. Пример в ячейке E2 находится текст в виде гиперссылки (но ссылка не кликается)
1. в файле styles.xml добавить элемент xf с атрибутом numFmtId="1" и xfId="1"
2. в файле sheet1.xml добавить элемент hyperlinks который содержит список элементами hyperlink с атрибутом ref="E2"
3. в файле sheet1.xml в ячейке прописать, чтобы атрибут s="" ссылался на новый элемент из п.1 Идея баян, конечно, а главное, ненадёжна. Вот автор пишет:
Записываем изменения в файлах и запаковываем все обратно в zip
и. и потом нихрена в экселе не открывается. Точнее, в 20% случаев открывается, а вот в остальных - какое настроение будет у экселя, так и пойдёт. Поэтому я подобную механику, лет 6 назад сделанную, даже публиковать не стал, слишком вероятны грабли. На самом деле, у меня есть подозрения, что упаковка стандартным zip-упаковщиком 1С делает нечто немножко не то, что ожидает Эксель. То ли уровень сжатия, то ли метод шифрования, то и в самом упаковщике что-то, то ли разрядность. Я в своё время убил неделю, пытаясь угадать, на 2010-м офисе, но увы. Так что идея-то хороша, а вот воплощение взлетает редко. (16) все нормально работает. Протестировано и внедрено в продакшен базу.
Нужно делать zip с методом сжатия = без сжатия. Ексель ожидает zip без сжатия. (17) сжатие явно есть, откройте архиватором и посмотрите на размеры файлов (17) Значит, вам крупно повезло и, может, будет везти до какого-нибудь обновления офиса. Вы ведь даже не указали в статье самое основное - какой версии эксель, какой состав дистрибутива, какая разрядность. Но делать на этой зыбкой почве продакшен и тем более публиковать на ИС я б поостерёгся. У меня полно интересных решений, которые я не выкладываю исключительно потому, что они не везде и не всегда срабатывают, а вы, видимо, считаете это нормой. (19) Есть задача и ее надо решить. Ваше решение?
Excel = Новый COMОбъект("Excel.Application"); (21) Решение - это прежде всего надёжность у клиента. Опубликованный тут вариант надёжным решением назвать нельзя. Точка. Использую у себя в работе. Проблем нет. Openxml работает хорошо. мне кажется с одним стилем вы не совсем правы-вы берете в таблице стилей последний, копируете его и изменяете его формат на нужный. Но ведь копируются и другие элементы стиля-заливка, рамки. А ведь могут быть несколько разных колонок с типом дата, но с разными стилями рамок, заливок и т.д. Этот момент переделал, а все остальное очень полезно оказалось, спасибо!

Просмотры 2755

Загрузки 0

Рейтинг 79

Создание 26.03.21 11:00

Обновление 26.03.21 11:00

№ Публикации 1409489

Тип файла Нет файла

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Бесплатно (free)

Код открыт Да


См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020 4556 Eugen-S 23

СКД: 5 советов, как сделать лучше

Несколько примеров решения задач с использованием разных подходов

27.10.2021 4468 Neti 19

Что за ? в коде, или Секретный оператор в 1С

Инкремент, модуль и прочая магия, которая скрыта под символом "?"

21.10.2021 8363 SeiOkami 41

Полезные примеры СКД, ч.2

Еще несколько примеров решения задач в СКД.

06.04.2021 10866 Neti 8

27.01.2016 85832 Serginio 116

Обзор полезных методов БСП 3.1.4

Библиотека стандартных подсистем (далее - БСП) является частью любой типовой конфигурации, поэтому умение применять готовые процедуры и функции повышает качество разработки и избавляет от написания лишнего кода. К сожалению, не у всех есть время и упорство овладеть всей документацией, поэтому я собрал воедино наиболее популярный функционал.

25.03.2021 41364 rayastar 51

Звуковое управление в 1С 8.3

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021 7226 velemir 33

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020 8957 comol 31

Использование программных перечислений, ч.1: строковые константы Промо

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016 41156 unichkin 74

Базовые вещи БСП, которые облегчат жизнь программисту 1С

В данной публикации я опишу полезные процедуры и функции модуля общего назначения библиотеки стандартных подсистем, обязательные к использованию любым программистом 1С.

30.08.2020 20383 quazare 34

[Общий модуль] Динамическое формирование интерфейса

Версия 2.0.0.1 + добавил GitHub

28.08.2020 13062 rpgshnik 74

Форма выбора (подбор) в управляемых формах

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020 79416 user5300 19

Вспомогательные инструкции в коде 1С Промо

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018 36201 tormozit 106

Программная работа с настройками СКД

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020 66171 ids79 26

[СКД] Программное создание схемы компоновки данных

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020 43918 John_d 22

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

30.12.2019 35621 kuzyara 38

Оформление и рефакторинг сложных логических выражений Промо

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012 82909 tormozit 131

Сходство Джаро - Винклера. Нечеткое сравнение строк

В области информатики и статистики сходство Джаро - Винклера представляет собой меру схожести строк для измерения расстояния между двумя последовательностями символов. В публикации рассмотрены некоторые особенности алгоритма, и представлен вариант его реализации на языке 1С.

25.12.2019 8466 brooho 19

22.11.2019 12434 Sibars 19

Полезные процедуры и функции для программиста

Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.

07.10.2019 39853 HostHost 41

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007 54513 tormozit 51

Таблица значений. Нюансы

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019 53323 Yashazz 56

[Шпаргалка] Программное создание элементов формы

Программное создание практически всех популярных элементов формы.

06.09.2019 103273 rpgshnik 75

Агрегатные функции СКД, о которых мало кто знает

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019 78149 ids79 56

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017 51280 tormozit 74

Регистры бухгалтерии. Общая информация

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019 46860 YPermitin 25

Три костыля. Сказ про фокусы в коде

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019 30254 YPermitin 81

Иерархия без "В ИЕРАРХИИ"

22.08.2019 15102 ildarovich 24

Выгрузка документа по условию Промо

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019 18046 m-rv 3

Отслеживание выполнения фонового задания

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019 45360 ids79 22

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019 153326 ids79 75

Фоновое выполнение кода в 1С - это просто

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019 61112 avalakh 27

Как прикрутить ГУИД к регистру сведений Промо

. и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019 23370 m-rv 18

Разбираемся с параметрами редактирования СКД

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019 42086 json 17

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019 106270 ids79 17

Обработчики событий при записи объектов. Зачем и что за чем?

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

то иногда число преобразуется в дату
вопрос - как отключить?

Вариант (ExcelXP)
?OLE = '"."'
?OLE = FALSE
Не работает под Excel2000 (ну нет там таких свойств)
Пробую обойти это так:

но здесь проблема с NumberFormat (см. Выше) (оставить в том виде что есть (текстовом) нельзя, так как на его основе не строятся ChartObjects)

Посоветуйте, плиз: как надо правильно записывать в ячейки Excel дробные числа независимо от настроек системы

елки-палки
ну ответьте хоть что-нибудь по теме
Ведь знаете, а молчите (

--
Best regards,
Ivan

ГОСПОДА КЛАРИОНИСТЫ!
Если не поможете, начну о вас плохо думать.

--
Best regards,
Ivan

Раз никто не отвечает, то либо лениво писать, либо некогда. Зачем сразу "плохо думать"

От себя: Конкретно ручками писать работу с Excel через OLE не писал.
Сразу стал писать используя OfficeTemplate. Там это без проблем, например:

Ой, как страшно . Глянь в MSDN функцию GetLocaleInfo.

Я при выводе дробного числа в Excel делаю так

Проблем не было. пока
Написал: Ravenous(3)

Да при чем тут это?
Мне не нужно менять установки в системе.

Мне нужно только
1. Правильно вывести число с десятичной точкой в Excel
2. Задать числовой формат ячейки в Excel

--
Best regards,
Ivan

Я не понял, что следующий код не работает?:

Если правильно понял то проблема десятичной точки тогда
Format(FSN:SNMBR,@n5`2)
Меняет точку на запятую

Liudvikas Jagucanskis <lwj@wireless.lt>
Написал: ClaList(2)

СПАСИБО. информация ценная
Только вот как тогда быть, если какой-то пользователь установил в качестве десятичного разделителя не запятую (по умолчанию), а точку?

В случае, когда в качестве системного десятичного разделителя установлена запятая.
НЕ работает вот что

?OLE = '"0.00"'
выдает ошибку:
OLE Automation Error
"Нельзя установить свойство NumberFormat класса Range"

то все работает.

и наоборот: использовать "0,00", когда в системе разделителем является точка, тоже нельзя. Ошибки при работе нет, но вот данные в Excel искажаются.

то есть что получается: при записи NumberFormat необходимо еще и проверять: какой разделитель установлен в системе и ручками формировать либо "0,00", либо "0.00" ?
объясните, плиз, я все правильно понимаю.


у Вас в настройках системы какой десятичный разделитель установлен?
(и еще если можно: какой Excel, какая Windows?)

--
Best regards,
Ivan

Я тут покопался малость и вот что выяснил:

?OLE <'Cells(' & i & ',' & j+1 & ').NumberFormat'>= '"0.00"'
выдает ошибку:
OLE Automation Error
"Нельзя установить свойство NumberFormat класса Range" - в случае, когда в качестве системного десятичного разделителя установлена запятая.
то все работает.
и наоборот: использовать "0,00", когда в системе разделителем является точка, тоже нельзя.

Ошибки при работе нет, но вот данные в Excel искажаются.

то есть что получается: при записи NumberFormat необходимо еще и проверять: какой разделитель установлен в системе и ручками формировать либо "0,00"
либо "0.00" .
объясните, плиз, я все правильно понимаю.

Тогда почему в коде VBA (в макросе Excel) стоит именно "0.00".

Подскажите: как определить какой символ используется в качестве десятичного разделителя? Я так понимаю это через API делать надо?
Приведите пример вызова функции API в Clarion.

--
Best regards,
Ivan
Написал: ClaList(2)

Репутация: нет
Всего: нет

Работаю с Excel через Microsoft.Office.Interop.Excel.

Возникла проблема: при вызове


вываливается COMException с текстом "Нельзя установить свойство NumberFormat класса Range", InnerException - null. В то же время строка

отрабатывает корректно. Первый вариант (с ошибкой) должен устанавливать формат N2 для чисел, второй - N0. Строка "0.00" формируется так:

На компе с установленной английской виндой при любых региональных настройках (NumberDecimalSeparator может быть и ".", и ",") оба варианта кода отрабатывают без ошибок - точка или запятая правильно определяются, и всё идёт без проблем. Но на компе с установленной русской виндой (в региональных настройках разделитель - точка, NumberDecimalSeparator = ".", CurrencyDecimalSeparator = ",") установка формата "0.00" приводит к ошибке.

У юзеров винды могут быть любые. Чем это лечится?

Репутация: нет
Всего: нет

Репутация: 9
Всего: 49

Репутация: нет
Всего: нет

Разобрался. Результаты следующие:
1) Для shurokan: Replace и иже с ними делать нельзя, ибо если Excel уже бросил свой жирный COMException, то пока его не перезапустишь, он будет тебя игнорировать со всеми попытками что-то дописать в документ. (По специфике задачи - перезапускать нельзя).
2) Для PashaPash: несколькими строчками выше "на всякий пожарный" и так вызывается не один демон:

, только дело совсем не в этом, ибо юзеров много, винды у всех разные, офисы - тоже, региональные настройки - подавно.

3) На деле выяснилось следующее:
При отображении дробей (если в ячейку было передано decimal-значение) используется NumberDecimalSeparator, но при передаче Excel-ю в строке формата нужно использовать CurrencyDecimalSeparator! Т.е. изначально следовало писать так:

Репутация: 9
Всего: 49

Лен, и работает после смены CurrencyDecimalSeparator в региональных настройках?

Репутация: нет
Всего: нет

Да, работает. Только если поменять оба - причём на всякие "левые" символы - тогда точно падает. Но если юзер такое сделает, это уже его глубокие проблемы с начальством, а не мои.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

[ Время генерации скрипта: 0.1092 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Всем доброго времени суток!
Возникла такая проблема. После вывода результата примерно такого запроса к БД в грид:

P.S. И в гриде и в екселе столбцы, в которых числа сохранены как текст имеют вещественный формат и разделены запятыми.
Пожалуйста, помогите разобраться. __________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Как автоматизировать поиск и устранение ошибки "число сохранено как текст"?
Есть столбец, в котором есть ячейки, содержащие численные значения, сохраненные как текст. Как.


Задаётся число в виде текста как а$.Как перевести этот текст в число?
Есть переменная a$=1 , в виде текста , как преобразовать её в цифру 1?


Как задать массиву имя, которое сохранено в другом массиве
Есть вектор Х, состоящий из целых чисел. Есть куча двумерных массивов с именами y1,y2. yn. Каким.

Resistor, есть несколько способов.
1. Откажитесь от приведения к типу CAST(PriceOrder AS decimal(8, 2)). Можно или PriceOrder сразу сделать decimal(8, 2),
или уже в Excel установить формат ячеек NumberFormat = "0,00", только делайте это сразу для столбца, а не по одной ячейке.
2. Использовать шаблон (т.е. подготовленный файл Excel) с уже установленным форматом для этого столбца.
3. Создать DataTable cо столбцами нужного формата, куда загружать данные из БД. Resistor, есть несколько способов.
1. Откажитесь от приведения к типу CAST(PriceOrder AS decimal(8, 2)). Можно или PriceOrder сразу сделать decimal(8, 2),
или уже в Excel установить формат ячеек NumberFormat = "0,00", только делайте это сразу для столбца, а не по одной ячейке.
2. Использовать шаблон (т.е. подготовленный файл Excel) с уже установленным форматом для этого столбца.
3. Создать DataTable cо столбцами нужного формата, куда загружать данные из БД.
Igr_ok, я не могу убрать приведение типа, так как тогда вычисления в спецификации вычисляемого столбца таблицы в БД MS SQL вернут значение с шестью нулями без запятых. А мне нужны именно с двумя знаками после запятой. NumberFormat и использовать шаблон тоже не подходит. Файлы всегда с разными именами и генерируются автоматически. А проставлять для каждого столбца в Excel NumberFormat, если их, например, 10 штук, не вариант.
Про DataTable можно подробнее. Пример хотя бы с одним столбцом? И чем отличается это решение от простой заливки по запросу в грид? проставлять для каждого столбца в Excel NumberFormat, если их, например, 10 штук, не вариант.

а почему? )
Вот код сразу на 20 столбцов

Resistor, из вашего ответа видно, что первый, предложенный мной вариант, вам и нужен.

Решение

я ошибся. надо вот так

Ничего не изменилось. Зеленые треугольники как были так и есть.

Добавлено через 3 минуты

Resistor, из вашего ответа видно, что первый, предложенный мной вариант, вам и нужен. Igr_ok, мысли я читать не умею, поэтому ваш ответ не показывает что конкретно мне нужно. Ничего не изменилось. Зеленые треугольники как были так и есть.

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

Файлы всегда с разными именами и генерируются автоматически. А где тут проблема для шаблона? Нужно лишь скопировать шаблон и поменять имя


Как преобразовать число в текст (на подобии =текст() )
Нужно какую нибудь функцию VBA, которая бы выполняла то же самое что и =текст() (тесть.

Читайте также: