P_col:=1;
for P_j:=1 to P_ExcelCol do
begin
ExcelApp.ActiveSheet.Cells[P_TabelHeadRow,P_col].Value :=StringGrid1.Cells[P_col,0];
inc(P_col);
end;
ExcelApp.ActiveSheet.Rows[P_TabelHeadRow].HorizontalAlignment := xlCenter;
//赋表格的内容;
P_NowHang:=P_TabelHeadRow+1;//从EXCEL 的 P_TabelHeadRow+1行开始;
P_row:=1; //记录STRINGGRID 的当前行;
for P_i:=1 to P_TableItemRow do
//for P_i:=1 to 20 do
begin
P_col:=1; //记录STRINGGRID 的当前列;
for P_j:=1 to P_ExcelCol do
begin
ExcelApp.ActiveSheet.Cells[P_NowHang,P_col].Value :=StringGrid1.Cells[P_col,P_row];
inc(P_col);
end;
inc(P_row);
inc(P_NowHang);
//调用表头 ,属于公共部分;(无需要改参数)
if P_NowHang mod P_PageRow=1 then //每页的行数为P_PageRow;
begin
if P_row-1<>P_TableItemRow then //sg1.RowCount-1表示所赋值的次数;(irow-1)-0是因为P_row的初值为1
begin
//复制与粘贴表头.
ExcelApp.ActiveSheet.Range['A1:'+char(64+P_ExcelCol)+inttostr(P_TabelHeadRow)].Copy;
ExcelApp.ActiveSheet.Range['A'+inttostr(P_NowHang)+':'+char(64+P_ExcelCol)+inttostr(P_NowHang+P_TabelHeadRow-1)].PasteSpecial; //其中P_TabelHeadRow是表示表头的行数;
P_NowHang:=P_NowHang+P_TabelHeadRow; //P_TabelHeadRow表示表头的行数;
end;
end;
end;//到此已经赋完除页头、页尾外的所有值;
//插入分页线;
P_row:=1;
for P_i:=1 to P_NowHang do
begin
if P_row mod P_PageRow= 0 then //P_PageRow是对应上面每页的行数;
begin
ExcelApp.ActiveSheet.Rows[P_row+1].PageBreak := 1;
end;
inc(P_row);
end;
5) 添加新工作表:
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;