Delphi讀寫EXCEL的代碼
定義變量:
ExcelApp:TExcelApplication;//用來連接Excel應用程序
ExcelWkbook:TExcelWorkbook;//工作薄
ExcelWksheet:TExcelWorksheet;//Excel數據表
代碼部分
begin
ExcelApp:=TExcelApplication.Create(Application);//創建Excel應用
ExcelWkbook:=TExcelWorkbook.Create(Application);//創建工作薄
ExcelWksheet:=TExcelWorksheet.Create(Application);//創建工作表
ExcelApp.Connect; //連接Excel應用程序
excelapp.Visible[0]:=true;
ExcelApp.WorkBooks.Open('e:\delphi\Nomalexcelbook1.xls',EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0); //打開文件
ExcelApp.ActiveWorkbook; //設置活動工作簿
Excelapp.ActiveSheet; //設置活動工作表
ExcelWkbook.ConnectTo(ExcelApp.Workbooks[1]); //工作簿與Excel應用程序連接
ExcelWksheet.ConnectTo(ExcelWkbook.Worksheets[1] as _worksheet); //工作表與工作簿連接
AdoQuery1.First;
for j:=0 to AdoQuery1.Fields.Count-1 do // 先寫字段名
begin
ExcelWksheet.Cells.item[1,j+1]:=AdoQuery1.Fields[j].Dis playLabel; // Cells對象:表示工作表的一個單元格。
ExcelWksheet.Cells.item[1,j+1].font.size:=10;
end;
for i:=2 to AdoQuery1.RecordCount+1 do // 一共要讀AdoQuery1.RecordCount-1條記錄
begin
for j:=0 to AdoQuery1.Fields.Count-1 do
begin
ExcelWksheet.Cells.item[i,j+1]:=AdoQuery1.Fields[j]. Asstring; //寫入記錄
end;
AdoQuery1.Next;
end;
ExcelWksheet.Columns.AutoFit; //列自適應
ExcelWksheet.SaveAs('e:\delphi\'+edit1.text); //按用戶提供的文件名保存文件
ExcelApp.Disconnect;
buttonCreate.Enabled:=false;
end;
鏈接數據庫
begin
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\delphi\xsxx.MDB;Persist Security Info=FALSE';
adoconnection1.Open;
ADOQuery1.Connection:=ADOConnection1;
AdoQuery1.SQL.Text:='Select * from xscjb';//可以選擇表進行多表查詢
AdoQuery1.Active:=True ;
DataSource1.DataSet:=AdoQuery1;
ButtonCreate.Enabled:=false;
end;
釋放代碼
begin
ExcelApp.Quit;
ExcelApp.Free; //釋放變量
ExcelWkbook.Free; //釋放變量
ExcelWksheet.Free;// 釋放變量
end;