程式目的:
自訂sql語法查詢出結果後,將資料結果匯出至預先製作之excel範本檔(第二頁),讓使用者於excel第一頁操作樞紐分析圖表。
前置作業:
以Excel製作範本檔,資料存放於第二頁,可預先定義欄位名稱,並輸入一筆資料以利製作樞紐分析圖表時預覽。
樞紐分析表分析的資料來員請選擇「Microsoft Office Excel清單或資料庫」,建立資料表的來源範圍直接由第二頁欄名選取。
檔案儲存時請選擇「範本 (*.xlt)」,並將該檔案儲存於執行檔目錄中之「Report」資料夾。
程式碼:
uses Comobj;
//uses中加入Comobj
procedure TfmPL.btPrintClick(Sender: TObject);
var MyExcel,MyExcelWorkBook,MySheet:variant;
//MyExcel應用程式,MyExcelWorkBook活頁簿,MySheet工作表
sExcelTempFilePath:String;
//執行檔位置
begin
qrTemp.Close;
qrTemp.SQL.Text:='Select * from PL where 1=1 ';
//組出sql語法
qrTemp.Open;
sExcelTempFilePath:=ExtractFilePath(Application.EXEName);
//取得執行檔位置
MyExcel:=CreateOleOBject('Excel.Application');
//開啟Excel
MyExcelWorkBook:=MyExcel.WorkBooks.open(sExcelTempFilePath+'Report\fmPL.xlt');
//開啟執行檔目錄中之Report資料夾,開啟fmPL.xlt範本檔
MySheet:=MyExcel.WorkBooks[1].WorkSheets[2];
//將工作表變數定義為第二個工作表
MyExcel.WorkBooks[1].WorkSheets[2].Cells[2,1].CopyFromRecordset(qrTemp.RecordSet.Get_DataSource);
//若RecordSet不須經過處理,直接以CopyFromRecordset將資料待入速度最快
MyExcel.Visible:=True;
end;