请问:在DELPHI+EXCEL中,如何合并两个单元格?

WWWWA 2002-08-28 03:48:14
请问:在DELPHI+EXCEL中,如何合并两个单元格?
谢谢!
...全文
2134 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2002-08-29
  • 打赏
  • 举报
回复
谢谢!问题已解决!
cobi 2002-08-29
  • 打赏
  • 举报
回复
try
myexcel:=createoleobject('excel.application');
myexcel.application.workbooks.add;
myexcel.caption:='车辆加油日明细表';
myexcel.application.visible:=true;
workbook:=myexcel.application.workbooks[1];
worksheet:=workbook.worksheets.item[1];
except
showmessage('EXCEL不存在!');
end;
myexcel.Range[worksheet.cells[2, 3], worksheet.cells[2, 8]].MergeCells := true;
worksheet.cells(1,4):='车辆加油日明细表';
worksheet.cells(2,3):=df.adoquery1.fields[0].asstring+' 年 '+
df.adoquery1.fields[1].asstring+' 月 '+
df.adoquery1.fields[2].asstring+' 日 ';
worksheet.cells(2,2):='日期:';
myexcel.Range[worksheet.cells[1,4],worksheet.cells[1,7]].select; //合并单元格
myexcel.selection.MergeCells := true;
myexcel.selection.HorizontalAlignment := xlCenter;
myexcel.selection.VerticalAlignment := xlcenter;
for i:=1 to df.ADOQuery1.FieldCount-3 do
worksheet.cells(3,1+i):= df.ADOQuery1.Fields[i+2].DisplayLabel ;
i:=3;
df.adoquery1.first;

while not df.adoquery1.eof do //赋明细值
begin
inc(i);
for j:=2 to df.adoquery1.fieldcount-2 do
worksheet.cells[i,j]:=df.adoquery1.fields[j+1].asstring;
df.adoquery1.next;
lastline:=i+1; //获得累计的行号
end ;
worksheet.cells(lastline,2):='累计';
df.ADOQuery2.Close;
df.ADOQuery2.SQL.Clear;
df.ADOQuery2.SQL.Add(Query2Str);
df.ADOQuery2.Open;
df.adoquery2.first;
for j:=0 to df.adoquery2.fieldcount-1 do //赋累计值
begin
worksheet.cells[lastline,j+4]:=df.adoquery2.fields[j].asstring;
df.adoquery2.next;
end;
tt1:='h'+inttostr(lastline); //画表
tt2:='h'+inttostr(lastline+1);
worksheet.Range[ 'a2',tt1 ].Borders[2].Weight :=2;
worksheet.Range[ 'b2',tt2 ].Borders[3].Weight :=2;
lastline:=lastline+1; //确定制表人的行号
worksheet.cells(lastline,6):='制表人:';
worksheet.cells(lastline,7):=NameLinkStr;
end;
WWWWA 2002-08-29
  • 打赏
  • 举报
回复
能给出一个例子吗?
谢谢!
tigerchina 2002-08-28
  • 打赏
  • 举报
回复
WorkSheet.Range[WorkSheet.Cells[xOrigin, yOrigin],
WorkSheet.Cells[xEnd, yEnd]].Merge;
zhxzhx 2002-08-28
  • 打赏
  • 举报
回复
你可以在execl中采用宏代换模式看看宏里面是怎么写的
如果实在不行你可以在excel中做好模板然后拷贝过去就可以成功,
我在VB中用过在Delphi中就没有这样用过了不过我想原理都是一样的祝你成功

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧