求delphi中SaveDialog用把stringGrid 中的内容保存为excel文件的代码

delphi中SaveDialog用把stringGrid中的内容保存为excel文件的代码我的stringGrid中的内容是动态的,而且是从数据集中筛选出来的,我要保存... delphi中SaveDialog用把stringGrid 中的内容保存为excel文件的代码
我的stringGrid 中的 内容是动态的,而且是从数据集中筛选出来的,我 要保存的格式是和stringGrid 一样的
展开
 我来答
天地惶惶
2009-08-07 · TA获得超过3223个赞
知道大有可为答主
回答量:1215
采纳率:0%
帮助的人:810万
展开全部
procedure Stringgridtoexcel(atitle: string;
Astringgrid: Tstringgrid; Afontsize: integer);
var xlapp, xlsheet: variant;
row, CCC, nnn, jjj: integer;
begin
try
xlapp := createoleobject('excel.application');
except
showmessage('not found excel in your system, so can not create file!');
exit;
end;
try
ccc := Astringgrid.ColCount;
xlapp.workbooks.add; //添加新工作簿
xlapp.visible := false;
xlsheet := xlapp.activesheet;
xlapp.activewindow.windowstate := 2;
xlapp.range[xlsheet.cells[1, 1], xlsheet.cells[1, ccc]].MERGE;
xlsheet.cells[1, 1].value := Atitle; //页头第一行;
xlsheet.cells[1, 1].HorizontalAlignment := -4108;

row := 2;
for jjj := 0 to Astringgrid.RowCount - 1 do
begin
for nnn := 1 to ccc do
xlsheet.cells[row, nnn] := trim(Astringgrid.Cells[nnn - 1, row - 2]);
xlsheet.rows[row].RowHeight := 18;
inc(row);
end;

xlapp.visible := true;
//格式调整

xlapp.range[xlsheet.cells[row, 1], xlsheet.cells[row, 13]].WrapText := True;
xlapp.range[xlsheet.cells[row, 1], xlsheet.cells[row, 13]].HorizontalAlignment := -4108;

xlsheet.pagesetup.headerMargin := 1 / 0.035; //页眉到顶端边距1cm
xlsheet.pagesetup.footerMargin := 0.6 / 0.035; //页脚到底端边距1cm
xlsheet.pagesetup.topMargin := 1 / 0.035; //顶边距1cm
XLSHEET.pagesetup.bottomMargin := 1.3 / 0.035; //底边距1cm
xlsheet.pagesetup.leftMargin := 0.5 / 0.035; //左边距1cm
xlsheet.pagesetup.rightMargin := 0.5 / 0.035; //右边距1cm
xlsheet.pagesetup.leftfooter := '制表: ' + Puboptername;
xlsheet.pagesetup.centerfooter := ''; //页脚
xlsheet.pagesetup.rightfooter := '第&P页/共&N页';
xlsheet.pagesetup.leftHeader := '';
xlsheet.pagesetup.orientation := 1; //横向
xlsheet.pagesetup.printtitlerows := '$1:$1';
xlsheet.rows[1].font.name := '宋体'; //设置第一行字体属性
xlsheet.rows[1].font.bold := true;
xlsheet.rows[1].font.size := 20;
xlsheet.rows[1].RowHeight := 28;

for nnn := 1 to ccc do
begin
xlsheet.columns[nnn].columnwidth := Astringgrid.ColWidths[nnn - 1] * 0.1188;
end;

for nnn := 1 to 4 do begin
xlapp.range[xlsheet.cells[2, 1], xlsheet.cells[row - 1, CCC]].borders[nnn].linestyle := 1;
xlapp.range[xlsheet.cells[2, 1], xlsheet.cells[row - 1, CCC]].borders[nnn].weight := 1;
end;

xlapp.range[xlsheet.cells[2, 1], xlsheet.cells[row - 1, CCC]].font.size := Afontsize;
xlapp.range[xlsheet.cells[2, 1], xlsheet.cells[row - 1, ccc]].WrapText := True;

varclear(xlsheet);
varclear(xlapp);
except
on E: Exception do
begin
xlapp.quit;
showMSG('出现错误' + E.message, '错误', 1);
end;
end;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式