
25.06.2013, 15:44
|
Новичок
|
|
Регистрация: 13.06.2013
Сообщения: 77
Версия Delphi: Delphi 7
Репутация: 10
|
|
подскажите код который делал бы объединение ячеек экселя с помощью цикла, нужно к примеру объединить пять ячеек по вертикали в первом столбце потом взять следующие пять ячеек и опять их объединить и так к примеру двести строк. у меня получается только последнее пять ячеек объединить, все ячейки перед ними просто пролистываются. вот мой код
Код:
unit merge;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Comobj;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
ExcelApp,
ExcelSheet,
ExcelCol,
ExcelRow,
Excel: Variant;
Size: real;
i, j, N, M: Word;
a_, b_:integer;
begin
// Запускаю приложение Excel
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible:=True;
// Создаю рабочую книгу
ExcelApp.Workbooks.Add(-4167);
ExcelApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
ExcelCol:=ExcelApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
// Ширина ячейки StringGrid1.DefaultRowHeight
ExcelApp.Columns.Columns[1].ColumnWidth:=5;
ExcelApp.Columns.Columns[2].ColumnWidth:=18;
ExcelApp.Columns.Columns[3].ColumnWidth:=9;
ExcelApp.Columns.Columns[4].ColumnWidth:=12;
ExcelApp.Columns.Columns[5].ColumnWidth:=11;
ExcelApp.Columns.Columns[6].ColumnWidth:=13;
ExcelApp.Columns.Columns[7].ColumnWidth:=13;
ExcelApp.Columns.Columns[8].ColumnWidth:=13;
ExcelRow:=ExcelApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
ExcelRow.Rows[1].Font.Bold:=True; // Заголовки столбцов - жирные
ExcelSheet:=ExcelApp.Workbooks[1].WorkSheets['Отчёт'];
begin
for a_:=17 to 226 do
ExcelApp.Range[ExcelSheet.cells[a_,1],ExcelSheet.cells[a_+5,1]].Select;
ExcelApp.Selection.merge;
a_:=a_+5;
end;
end;
end.
подскажите, плз.
|