![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с Excel
Neket © (2007-04-12 12:25:00)Подскажите пожалуйста где можно почитать про полноценную работу с Excel документом с помощью DELPHI. В частности интересует как програмно создать объедененную ячейку. Раскрасить её. Нарисовать табличку и т.д.
P.S.
Заодно интересует. Как можно создавать Excel документ в Delphi со встроенный VB скриптом.
Neket (2007-04-13 10:32:00) [1]Все разобрался...
Кому интересно то это делается так.
XL.Range['J7','BF7'].Select;
XL.selection.Orientation:=xlUpward;
Neket (2007-04-13 10:08:00) [2]Да Rezya но это нада сделать програмно. А как? я не знаю :-)
TIF (2007-04-13 10:05:00) [3]Ну и там его поворачиваешь на тот угол который необхдимо.
да, в отличие от ворда
Rezya (2007-04-13 10:01:00) [4]В Excel это задается через формат ячеек->Выравниване->Ориентация текста.
Ну и там его поворачиваешь на тот угол который необхдимо.
Megabyte (2007-04-13 09:58:00) [5]Хз. Если знаешь, как сделать в самом Excel, то запиши макрос и посмотри..
Neket (2007-04-13 09:34:00) [6]Ещё вопросик возник.
А как задать формат ячейки так, чтобы текст в ней был не слева на право на снизу вверх.
Neket (2007-04-12 17:50:00) [7]Аааааа вот он как... А я блин уже час мучаюсь. Не могу понять. Спасибо
Megabyte (2007-04-12 17:39:00) [8]
//окантовка названий полей
...
for j := 1 to 4 do
Sheet.Cells[4, i+1].Borders[j].LineStyle := 1;
j := от 1 до 4, четыре стороны ячейки.
свойство LineStyle - тип линии.
Neket (2007-04-12 16:49:00) [9]Ещё вопросик возник.
XL:= CreateOleObject('Excel.Application');
XL.Workbooks.Add;
XL.Range['A1:AE1'].Select;
XL.Selection.Borders.Weight:=2;
Тем самым мы окрашиваем все стороны прямоугольника всех ячеек тонкой линией. А как горизонтальные линии окрасить тонкой линиией а вертикальные толстой?
Neket (2007-04-12 15:06:00) [10]Спасибо... Очень помог.
Megabyte (2007-04-12 14:34:00) [11]
var
otchet, WorkBook, Sheet: Variant;
...
otchet := CreateOleObject('Excel.Application'); //объект
otchet.SheetsInNewWorkbook := 1;
WorkBook := otchet.WorkBooks.Add; //рабочий док-т Excel
Sheet:= WorkBook.WorkSheets[1]; //страница
//установки заголовка отчета
Sheet.Cells[1, 2].font.size := 15;
Sheet.Cells[2, 2].font.size := 13;
Sheet.Cells[1, 2].font.bold := true;
Sheet.Cells[2, 2].font.italic := true;
Sheet.Cells[1, 2].Value := HeaderOtchet;
Sheet.Cells[2, 2].Value := date;
Sheet.columns[2].ColumnWidth := 25;
Sheet.columns[4].NumberFormat := '@';
Sheet.columns[5].NumberFormat := '@';
//окантовка названий полей
for i := 1 to fOtchetDataSet.FieldCount do //fOtchetDataSet - Набор Данных
begin
Sheet.Cells[4, i+1].font.size := 12;
Sheet.columns[i+2].ColumnWidth := 15;
Sheet.columns[i+2].HorizontalAlignment := xlleft;
for j := 1 to 4 do
Sheet.Cells[4, i+1].Borders[j].LineStyle := 1;
end;
//вывод названий полей
for i := 0 to fOtchetDataSet.FieldCount-1 do
begin
//установки строки названий
Sheet.Range['c4'].Rowheight := 20;
Sheet.Cells[4, i+2].font.bold := true;
//заполнение названий полей
Sheet.Cells[4, i+2].Value := fOtchetDataSet.Fields.Fields[i].FieldName;
end;
fOtchetDataSet.First;
//2-й цикл выгрузки данных в Excel
For i := 1 to fOtchetDataSet.RecordCountFromSrv do
begin
for k := 0 to fOtchetDataSet.FieldCount-1 do
begin
Sheet.Cells[i+4, k+2] := fOtchetDataSet.FieldList.Fields[k].Value;
if fOtchetDataSet.FieldList.Fields[1].Value = '???' then
begin
for j := 1 to fOtchetDataSet.FieldCount do
Sheet.Cells[i+4, j+1].font.bold := true;
end;
end;
fOtchetDataSet.Next;
end;
Workbook.SaveAs(OtchetFullName, xlNormal, '', '', false, false);
...
WorkBook.close;
otchet := Unassigned;
Neket (2007-04-12 14:02:00) [12]
> Где почитать, не скажу, могу образец кода дать?
Давай.
Megabyte (2007-04-12 13:33:00) [13]
> Подскажите пожалуйста где можно почитать про полноценную работу с Excel документом с помощью DELPHI. В частности интересует как програмно создать объедененную ячейку. Раскрасить её. Нарисовать табличку и т.д.
1) Все команды VBA(макросы в Excel) создаются с помощью "записать макрос" в самом Excel и интерпретируются под Дельфи(ну там = заменить на := ).
2)В Дельфи c Excel работаешь как с COM-сервером.
Где почитать, не скажу, могу образец кода дать?