powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форматирование ячеек при выводе в Excel
8 сообщений из 8, страница 1 из 1
Форматирование ячеек при выводе в Excel
    #39747403
melihron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день.
Подскажите пожалуйста, кто знает...

При выводе в Excel значений типа "12-01", "08/03-16" и "29/01" , формат ячейки автоматом преобразуется в дату или ещё в чего-то, а нужен текст. NumberFormat - ом могу преобразовать в число или дату, а как в текст подскажите плиз.
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747486
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
melihron,
Первый путь - сделать в файле шаблона Excel формат всех столбцов, куда осуществляется вывод, текстовым.
Второй путь - при выводе в Excel добавлять впереди перед выводимыми значениями апостроф. При этом данные автоматом преобразуются в текст, апостроф в ячейке Excel показываться не будет, это для Excel служебный символ, означающий, что в ячейке текстовые данные (если он стоит перед данными).
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747517
melihron, а как именно вы выгружаете?
Если через меню, то попробуйте установить флажок "применить форматирование" (или что-то в этом роде). Если через VBA, то попробуйте DoCmd.OutputTo.
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747554
melihron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zimkonmelihron,
Первый путь - сделать в файле шаблона Excel формат всех столбцов, куда осуществляется вывод, текстовым.
Второй путь - при выводе в Excel добавлять впереди перед выводимыми значениями апостроф. При этом данные автоматом преобразуются в текст, апостроф в ячейке Excel показываться не будет, это для Excel служебный символ, означающий, что в ячейке текстовые данные (если он стоит перед данными).

шаблона? эээ... Пошёл по второму пути, спасибо за подсказку... но хотелось в свойствах ячейки, в которую выводится текст выставить явно, что это текст... как-то должно это выставляться...

Кривцов Анатолий melihron, а как именно вы выгружаете?
Если через меню, то попробуйте установить флажок "применить форматирование" (или что-то в этом роде). Если через VBA, то попробуйте DoCmd.OutputTo.

Выгружаю из VBA через объекты экселевские. Через DoCmd можно конечно, но через него точно нельзя вручную форматирование ячеек выставить : )
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747571
melihronВыгружаю из VBA через объекты экселевские. Через DoCmd можно конечно, но через него точно нельзя вручную форматирование ячеек выставить : ) Если через объекты (Excel.Application и т.д.), то присвойте нужный формат столбцу перед выгрузкой данных.
В VBA Excel-я это выглядит так: Range("B:B").NumberFormat ="@"

ЗЫ. DoCmd.OutputTo переносит на лист все форматы из источника, включая ширину столбцов, вид шрифта и т.д. Попробуйте.
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747672
melihron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов АнатолийВ VBA Excel-я это выглядит так: Range("B:B").NumberFormat ="@"
ЗЫ. DoCmd.OutputTo переносит на лист все форматы из источника, включая ширину столбцов, вид шрифта и т.д. Попробуйте.

Анатолий, благодарствую, именно то, что хотел, спасибо.

Тады ещё вопрос. Вывожу число 69.03700 из таблицы, где формат этого поля "одинарное с плавающей точкой", число десятичных знаков заявлено 5. При выводе в окне watches вижу, что в эксель идёт 69.037, округляется ещё при выводе
Код: vbnet
1.
xlSheet.Range("E" & row).Value = Nz(Round(rs!Сумма,2), "")


а в эксель попадает число 69.0400009155273. Какого спрашивается ражна?...
борюсь с этим как умею, не особо хорошо
Код: vbnet
1.
2.
3.
.NumberFormat = "0.00"
' или
xlSheet.Range("F" & row + 2).NumberFormat = "### ### ### ##0.00"


то есть не реальное округление, а число просто показывается округлённым, а если в него тыкнуть - вверху в строке формулы отобразится всё то-же 69.0400009155273
Тут тогда получается 2 вопроса.
Как в эксель передать число с нужным округлением ?
и если решёния не найдётся, то тогда
Как это число в экселевской ячейке реально округлить до двух знаков из VBA Access-а ?
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747710
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
melihron"одинарное с плавающей точкой
Зачем вы используете этот тип данных? В Экселе используется двойное с плавающей точкой. Преобразование и дает "хвосты" из-за округлений.
Округляйте функцией Round в запросе. Для надежности можно перед округлением реобразовать к двойному явно Round(CDbl([MyColumn]),5)
Если нужно в Экселе показывать строго 5 знаков, даже если реально 3 после запятой, отформатируйте ячейку
...
Рейтинг: 0 / 0
Форматирование ячеек при выводе в Excel
    #39747884
melihron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

Понял, спасибо, даже преобразование CDbl перед передачей в Excel уже убирает эти погрешности. Я знаю, что все ругают этот тип данных single, сам его не использую... база досталась в наследство... шож.. буду исправлять...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форматирование ячеек при выводе в Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]