Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2009, 14:13   #1
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию выравнивание данных в ячейках - ?

При импорте содержимого DBGrid в Excel выравнивание данных в столбцах происходит произвольно. А можно ли самому задать выравнивание данных по центру? Например, в столбце "количество" все цифры прижаты к правой стенке ячейки, а нужно чтобы они были в центре (задать необходимо не в excel а в самой программе). иначе при печати, если не задавать печать сетки, данные из разных полей сливаются
Evgenii вне форума Ответить с цитированием
Старый 10.08.2009, 14:22   #2
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

нужно сперва выбрать ячейку или несколько ячеек, например:
Код:
Excel.ActiveWorkBook.WorkSheets[1].Range['A3:E3'].Select;
или просто:
Код:
Excel.Range['A3:E3'].Select;
потом выставить в них выравнивание:
Код:
Excel.Selection.HorizontalAlignment:=xlCenter; {по центру}
Excel.Selection.HorizontalAlignment:=xlLeft; {по левому краю}
Excel.Selection.HorizontalAlignment:=xlRigth; {по правому краю}
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Старый 10.08.2009, 14:53   #3
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

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

Последний раз редактировалось Evgenii; 10.08.2009 в 15:01.
Evgenii вне форума Ответить с цитированием
Старый 10.08.2009, 15:29   #4
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

а как на счет логики?

Код:
Excel.Columns[2].HorizontalAlignment:=xlCenter; {по центру}
Excel.Columns[2].HorizontalAlignment:=xlLeft; {по левому краю}
Excel.Columns[2].HorizontalAlignment:=xlRigth; {по правому краю}
где 2- номер столбца.
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Старый 10.08.2009, 15:47   #5
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

странно.. ставлю выравнивание по центру, а все данные почему то прижимаются к левой границе (до этого прижимались к правой)
Evgenii вне форума Ответить с цитированием
Старый 10.08.2009, 15:56   #6
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

Цитата:
странно.. ставлю выравнивание по центру, а все данные почему то прижимаются к левой границе (до этого прижимались к правой)
только что у себя проверил - все работает.
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Старый 10.08.2009, 16:01   #7
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

Вот мой код:
Код:
var
XLApp,Sheet,Colum:Variant;
index,i:Integer;
begin
XLApp:= CreateOleObject('Excel.Application');
XLApp.Visible:=true;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
Colum.Columns[1].ColumnWidth:=20;
Colum.Columns[2].ColumnWidth:=20;
П
375
Colum.Columns[3].ColumnWidth:=20;
Colum.Columns[4].ColumnWidth:=20;
Colum.Columns[5].ColumnWidth:=20;
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14;
Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
Sheet.Cells[1,2]:='Телефонный справочник';
Sheet.Cells[2,1]:='Фамилия';
Sheet.Cells[2,2]:='Имя';
Sheet.Cells[2,3]:='e-mail';
Sheet.Cells[2,4]:='Город';
Sheet.Cells[2,5]:='Дата рождения';
index:=3;
DataModule1.BookTable.First;
for i:=0 to DataModule1.BookTable.RecordCount-1 do
begin
Sheet.Cells[index,1]:=DataModule1.BookTable.Fields.Fields[1].AsString;
Sheet.Cells[index,2]:=DataModule1.BookTable.Fields.Fields[2].AsString;
Sheet.Cells[index,3]:=DataModule1.BookTable.Fields.Fields[3].AsString;
Sheet.Cells[index,4]:=DataModule1.BookTable.Fields.Fields[5].AsString;
Sheet.Cells[index,5]:=FormatDateTime('dddddd',
DataModule1.BookTable.Fields.Fields[6].AsDateTime);
Inc(index);
DataModule1.BookTable.Next;
end;
Такой вариант не подходит
Excel.Columns[2].HorizontalAlignment:=xlCenter;
Я его видоизменял под свой код:
colum.Columns[2].HorizontalAlignment:=tacenter;
Может в этом проблема?
Evgenii вне форума Ответить с цитированием
Старый 10.08.2009, 16:10   #8
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

чет я не вижу в твоем примере строку
Код:
colum.Columns[2].HorizontalAlignment:=tacenter;
и откуда такое число -4167 в строке?
Код:
XLApp.Workbooks.Add(-4167);
попробуй делать так для выравнивания:
Код:
XLApp.Columns[2].HorizontalAlignment:=xlCenter;
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Старый 10.08.2009, 16:18   #9
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

-4167 это константа означающая создание книги.
а если сделать так:
Код:
XLApp.Columns[2].HorizontalAlignment:=xlCenter;
то программа не распознает выражение xlCenter
Evgenii вне форума Ответить с цитированием
Старый 10.08.2009, 16:35   #10
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

Цитата:
-4167 это константа означающая создание книги.
у меня и так:
Код:
Excel.Workbooks.Add;
все работает.
Цитата:
то программа не распознает выражение xlCenter
у тебя какая версия Excel?
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подстановка в ячейках Garrison Microsoft Office Excel 13 31.07.2009 21:44
Выравнивание данных в MsgBox по строкам и столбцам CaptainNemo Microsoft Office Excel 0 14.07.2009 00:00
Выравнивание форм в ячейках таблицы Antoha HTML и CSS 3 30.03.2009 23:15
Сложение данных в разных ячейках viter.alex Microsoft Office Excel 20 14.01.2009 18:30
Суммирование данных в ячейках запроса Kikobuster Microsoft Office Access 5 28.11.2008 14:39