![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
1147 |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
С помощью следующего кода, импортирую содержимое DBGrid в Excel:
var Но при печати данные в разных столбцах ничем не разграничены и сливаются. Можно ли как-нибудь в программе заранее задать чтобы все печаталось с сеткой, или данные в некоторых столбцах выровнять по центру. Добавляю в код: colum.Columns[2].HorizontalAlignment:=tacenter; Но почему то после этого все данные прижимаются к левой границе ячеек. Подскажите, можно ли для решения проблемы внести изменения в этот код, или воспользоваться каким-нибудь другим вариантом? Сообщение отредактировано: 1147 - 13.08.2009 19:12 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Добавляю в код: Собственно, почему taCenter? У Экселя свои константы для выравнивания.colum.Columns[2].HorizontalAlignment:=tacenter; Но почему то после этого все данные прижимаются к левой границе ячеек. Constвыровняет столбец по центру. |
1147 |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Верно) Спасибо! А печать сетки задать в программе можно или только в Excel?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Все, что можно сделать в Excel, можно сделать и через OLE... Сейчас посмотрю...
Добавлено через 6 мин. Update Ну, скажем вот такую строку добавь: XLApp.Workbooks[1].WorkSheets['Отчёт'].PageSetup.PrintGridLines := True;, это должно включить печать сетки. |
1147 |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Да, сетка печатается). И последний вопрос в этой теме, не настолько важный, но всетаки может возможно также задать в программе альбомную печать страницы, чтобы в Excel уже ничего не нужно было настраивать?
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
"Альбомная" - это Landscape?
// 1 = Landscape, 2 = Portrait |
1147 |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
![]() |
1147 |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
А можно ли при нажатии одной кнопки перенести в Excel содержимое не только одной DBGrid, а сразу трех? Названия столбцов первой DBGrid общие для всех. Данные из двух других таблиц просто последовательно размещаются внизу друг за другом?
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Если Гриды называются DBGrid1, DBGrid2, DBGrid3, то:
var gridIndex: Integer;Все просто на самом деле... Цитата Названия столбцов первой DBGrid общие для всех Это не столь важно. Важно, чтобы названия полей в DataSource у всех этих DBGrid-ов были общими. Вот если они разные - то придется действовать по технологии Copy+Paste... |
1147 |
![]()
Сообщение
#10
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
В DBGrid есть некоторые данные, которые при переносе в Excel почему то искажаются. Например число 55555555555555555555 выглядит в Excel так: 5,55556Е+19, а 2 числа, записанных через запятую: 1559,5888888 отображаются так: 15 595 888 888. Из-за чего происходят такие изменения? Как сделать чтобы в Excel отображались данные именно так, как они выглядят в DBGrid?
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата Из-за чего происходят такие изменения? Как сделать чтобы в Excel отображались данные именно так, как они выглядят в DBGrid? Установить клеткам формат Text, а не Number (что устанавливается по умолчанию). Добавь апостроф перед строкой, которую передаешь в Excel:Sheet.Cells[index,1]:=''''+Fields.Fields[0].AsString;... Правда тогда дюже умное творение Майкрософта начинает орать, что "Ошибка!!! Вместо числа записали строку!!!", но тебе все же лучше знать, что записывать, или я ошибаюсь? Я отключаю в настройках Оффиса всю эту супер-умную приблуду, и нормально работаю, КАК Я ХОЧУ, а не так, как мне диктует MS. |
1147 |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
А где находятся настройки Оффиса и как отключить предупреждение об ошибке?
|
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Ну, конкретно это предупреждение можно вот так отключить:
XLApp:= CreateOleObject('Excel.Application');Другие возможности описаны здесь: MSDN -> ErrorCheckingOptions Object |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 10:46 |