传送数据到xls文件中 ( 积分: 50 )

  • 主题发起人 主题发起人 gongfs
  • 开始时间 开始时间
G

gongfs

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有四张表分别存放不同的查询结果,现想将它们分别存放到一个xls 文件中
不同的查询结果存放在不同的工作表中,请大侠们帮忙,谢谢,最好有原代码给我/
我很着急!
 
我现在有四张表分别存放不同的查询结果,现想将它们分别存放到一个xls 文件中
不同的查询结果存放在不同的工作表中,请大侠们帮忙,谢谢,最好有原代码给我/
我很着急!
 
4、在SQL SERVER里往Excel插入数据:
-- ======================================================
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:/training/inventur.xls')...[Filiale1$]
(bestand, produkt) valueS (20, 'Test')

Filiale1就是工作表
 
谢谢,我是想把四个datagrid中的内容传进去,加入数据我已经会了,但如何在一个excel文件
中加入多个sheet表呢
 
var
aExcel, aSheet, aQueryTable: Variant;
sQueryText, sFileName: String;

aExcel := CreateOleObject('Excel.Application');
aExcel.WorkBooks.Add(-4167);

aSheet := aExcel.ActiveWorkbook.WorkSheets[1];
sQueryText := 'select * from Table1';
aQueryTable := aSheet.QueryTables.Add(Format('OLEDB;%s;', [ADOConnection.ConnectionString]), aSheet.Range['A1', 'A1'], sQueryText);
aQueryTable.RefreshStyle := 2;
aQueryTable.Refresh(False);

aSheet := aExcel.ActiveWorkbook.WorkSheets[2];
sQueryText := 'select * from Table2';
aQueryTable := aSheet.QueryTables.Add(Format('OLEDB;%s;', [ADOConnection.ConnectionString]), aSheet.Range['A1', 'A1'], sQueryText);
aQueryTable.RefreshStyle := 2;
aQueryTable.Refresh(False);

aSheet := aExcel.ActiveWorkbook.WorkSheets[3];
sQueryText := 'select * from Table3';
aQueryTable := aSheet.QueryTables.Add(Format('OLEDB;%s;', [ADOConnection.ConnectionString]), aSheet.Range['A1', 'A1'], sQueryText);
aQueryTable.RefreshStyle := 2;
aQueryTable.Refresh(False);

……

aExcel.ActiveWorkbook.SaveAs(sFileName);
 
用控件,几句code就搞定了
http://www.scalabium.com/sme.htm
 
把查询结构输出到Excel里吧!
var
ExcelApp,WorkBook: OLEVariant;
i,j: Integer;
Filename,Mess:string;
begin
if Application.MessageBox('是否要输出查询结果到Excel?','管理系统',MB_YESNO)=IDNO then
Exit;
try
ExcelApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleobject('Excel.Sheet');
except
application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.','',
mb_OK+mb_IconStop);
Exit;
end;
WorkBook:=ExcelApp.workbooks.Add;
ExcelApp.Visible:=true;
ExcelApp.WorkSheets[1].Activate;
ExcelApp.WorkSheets[1].name:=tablename+'数据';
ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clgreen;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := False;
if ADODataSet1.RecordCount>0 then
begin
ADODataSet1.First;
for i:=1 to ADODataSet1.FieldCount-1 do
ExcelApp.Cells[1,i].Value:=ADODataSet1.Fields.FieldName;
for i:=0 to ADODataSet1.RecordCount-1 do
begin
for j:=1 to dm.ADODataSet1.FieldCount-1 do
ExcelApp.Cells[i+2,j].Value:=ADODataSet1.Fields[j].AsString;
ADODataSet1.Next;
end;
end;
ExcelApp.Quit;
///导出记数
end;
 
多人接受答案了。
 
后退
顶部