求delphi中SaveDialog用把stringGrid 中的内容保存为excel文件的代码
delphi中SaveDialog用把stringGrid中的内容保存为excel文件的代码我的stringGrid中的内容是动态的,而且是从数据集中筛选出来的,我要保存...
delphi中SaveDialog用把stringGrid 中的内容保存为excel文件的代码
我的stringGrid 中的 内容是动态的,而且是从数据集中筛选出来的,我 要保存的格式是和stringGrid 一样的 展开
我的stringGrid 中的 内容是动态的,而且是从数据集中筛选出来的,我 要保存的格式是和stringGrid 一样的 展开
1个回答
展开全部
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;
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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询