如题,我在电脑上装的是OFFICE2007,结果现在编的时候,默认导出为.xlsx格式,而不是.xls格式。
代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
excels,sheets: Variant;
begin
{ea1.Quit;
ea1.Disconnect; }
dir:=getcurrentdir();
try
excels:=createoleobject('excel.application');
sheets:=CreateOleObject('excel.sheet');
excels.visible:=false;
sheets:=excels.workbooks.add;
excels.caption:=edit3.Text;
if savedialog1.Execute then
for i:=1 to sg.RowCount do
for j:=1 to sg.ColCount do
begin
excels.cells[i,j]:=sg.Cells[j-1,i-1];
end;
showmessage('导出操作完成!');
sheets.saveas(savedialog1.FileName);
sheets.close;
excels.quit;
excels:=unassigned;
except
end;
end;
运行导出结果为.xlsx格式,请问要如何才能变成.xls格式?
我曾试过str:=savedialog1.FileName+'.xls';
sheets.saveas(str);
不过结果打开所保存的文件时说,您尝试打开的文件"6.xls"与文件扩展名指定的格式不一致。
代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
excels,sheets: Variant;
begin
{ea1.Quit;
ea1.Disconnect; }
dir:=getcurrentdir();
try
excels:=createoleobject('excel.application');
sheets:=CreateOleObject('excel.sheet');
excels.visible:=false;
sheets:=excels.workbooks.add;
excels.caption:=edit3.Text;
if savedialog1.Execute then
for i:=1 to sg.RowCount do
for j:=1 to sg.ColCount do
begin
excels.cells[i,j]:=sg.Cells[j-1,i-1];
end;
showmessage('导出操作完成!');
sheets.saveas(savedialog1.FileName);
sheets.close;
excels.quit;
excels:=unassigned;
except
end;
end;
运行导出结果为.xlsx格式,请问要如何才能变成.xls格式?
我曾试过str:=savedialog1.FileName+'.xls';
sheets.saveas(str);
不过结果打开所保存的文件时说,您尝试打开的文件"6.xls"与文件扩展名指定的格式不一致。
不过代码应该是没有什么问题.
关键在savedialog1的默认类型上.把这个贴上来看看.
ps: 代码是网上下的?
这样获取到的文件名形式如:6.XLSX.XLS;所以你就打不开6.XLS了
你试下这样做,获取文件名:
var
str,str1:string;
begin
str:=savedialog1.FileName //获取文件名test01.txt
str1:=ExtractFileExt(str); //获取扩展名.txt
setLength(str,length(str)-length(str1)); //将扩展名部分抛弃
str:=str+'.xls';
end;
这样所获得的扩展名看下是不是.XLS我是个初学者,可能还有更简单的方法