我需要把ACCESS的数据转到EXCEL中,一个表转到该EXCEL的一个Sheet中,没有格式要求,我用以下语句
Select * INTO [excel 8.0;database=' + xlspath + '].[sheet1$] from jcd
Select * INTO [excel 8.0;database=' + xlspath + '].[sheet2$] from jsd
……运行的时候如果是已经存在的sheet,则提示‘表sheet1已存在’,转换失败;
如果是不存在的sheet,则提示'Sheet4不是一个有效名称',转换失败;
Select * INTO [excel 8.0;database=' + xlspath + '].[sheet1$] from jcd
Select * INTO [excel 8.0;database=' + xlspath + '].[sheet2$] from jsd
……运行的时候如果是已经存在的sheet,则提示‘表sheet1已存在’,转换失败;
如果是不存在的sheet,则提示'Sheet4不是一个有效名称',转换失败;
procedure TCustomCommonRoutine.SaveToExcel(FDataSet: array of TDataSet;
Title, SubTitle, FileName: string);
var
i, j: Integer;
sList: TStringList;
begin
sList := TStringList.Create;
sList.Clear;
if length(FDataSet) > 0 then
begin
sList.Add('<HTML>');
sList.Add(#9 + '<HEAD>');
sList.Add(#9 +
'<meta http-equiv="content-type" content="text/html; charset=gb2312">');
sList.Add(#9#9 + '<H2 align="center">');
sList.Add(Title);
sList.Add(#9#9 + '</H2>');
sList.Add(#9#9 + '<H3 align="center">');
sList.Add(SubTitle);
sList.Add(#9#9 + '</H3>');
sList.Add(#9 + '</HEAD>');
sList.Add('<body>');
sList.Add('<table width="100%" border="1">');
for i := 0 to length(FDataSet) - 1 do
begin
with FDataSet[i] do
begin
sList.Add(#9 + '<tr>');
for j := 0 to FDataSet[i].FieldCount - 1 do
begin
if FDataSet[i].Fields[j].Visible = true then
begin
sList.Add(#9#9 + '<td>');
sList.Add(#9#9 + FDataSet[i].Fields[j].DisplayName);
sList.Add(#9#9 + '</td>');
end;
end;
sList.Add(#9 + '</tr>');
if FDataSet[i].RecordCount > 0 then
begin
FDataSet[i].First;
while not FDataSet[i].Eof do
begin
sList.Add(#9 + '<tr>');
for j := 0 to FDataSet[i].FieldCount - 1 do
begin
if fDataSet[i].Fields[j].Visible = true then
begin
sList.Add(#9#9 + '<td>');
sList.Add(#9#9 + trim(FDataSet[i].Fields[j].AsString));
sList.Add(#9#9 + '</td>');
end;
end;
sList.Add(#9 + '</tr>');
FDataSet[i].next;
end;
end
else
begin
sList.Add(#9 + '<tr>');
for j := 0 to FDataSet[i].FieldCount - 1 do
begin
if fDataSet[i].Fields[j].Visible = true then
begin
sList.Add(#9#9 + '<td>');
sList.Add(#9#9 + '');
sList.Add(#9#9 + '</td>');
end;
end;
sList.Add(#9 + '</tr>');
end;
end;
end;
sList.Add('</table>');
sList.Add('</body>');
sList.SaveToFile(FileName+'.xls');
end;
sList.Free;
end;