全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4026
推到 Plurk!
推到 Facebook!

如何在Excel檔案儲存後不出現對話窗,直接以設定的檔名來儲存

缺席
Dreams
一般會員


發表:1
回覆:3
積分:0
註冊:2004-03-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-03 11:09:02 IP:59.120.xxx.xxx 訂閱
請問各位大大, 在以下的格式輸出後,已經使用ExcelAp.OlePropertySet("DisplayAlerts", false);
不顯示程式儲存的對話窗.
但是執行後還是會出現對話窗,要求指定路徑及檔名.
我希望可以由程式設定的路徑(Ex. AnsiString sFileName)來儲存. 拜託幫我看看哪裡要修改.謝謝! <textarea class="cpp" rows="10" cols="60" name="code"> // 轉EXCEL Variant ExcelAp,WorkBooks,WorkBook,Sheets,Sheet; Variant Range, FColumns, Cell,Item; // 新增一worksheet ExcelAp = CreateOleObject("Excel.Application"); ExcelAp.OlePropertySet("Visible",false); ExcelAp.OlePropertySet("DisplayAlerts", false); WorkBooks=ExcelAp.OlePropertyGet("Workbooks"); WorkBook=WorkBooks.OleFunction("Add"); Sheets=WorkBook.OlePropertyGet("Worksheets"); // 設定worksheet 的名稱 Sheet=Sheets.OlePropertyGet("Item",1); Sheet.OlePropertySet("Name","總表"); // 設定欄高 FColumns = Sheet.OlePropertyGet("Rows",1); FColumns.OlePropertySet("RowHeight",30); // 設定欄位名稱 Cell = Sheet.OlePropertyGet("Cells",2,1); Cell.OlePropertySet("Value","Date"); Cell = Sheet.OlePropertyGet("Cells",2,2); Cell.OlePropertySet("Value","Recipe"); // 合併儲存格 Range = Sheet.OlePropertyGet("Range",Sheet.OlePropertyGet("Cells",1,3), Sheet.OlePropertyGet("Cells",1,5)); Range.OleFunction("Merge"); Range.OlePropertySet("Value","數量"); Cell = Sheet.OlePropertyGet("Cells",2,3); Cell.OlePropertySet("Value","Total"); Cell = Sheet.OlePropertyGet("Cells",2,4); Cell.OlePropertySet("Value","OK"); Cell = Sheet.OlePropertyGet("Cells",2,5); Cell.OlePropertySet("Value","NG"); // 儲存檔案 ExcelAp.OleFunction("Save"); // 釋放記憶體 VarClear(Item); VarClear(Cell); VarClear(FColumns); VarClear(Range); VarClear(Sheet); VarClear(Sheets); VarClear(WorkBook); VarClear(WorkBooks); ExcelAp.OleFunction("Quit"); VarClear(ExcelAp); </textarea>
編輯記錄
Dreams 重新編輯於 2007-09-04 13:54:14, 註解 無‧
Dreams
一般會員


發表:1
回覆:3
積分:0
註冊:2004-03-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-04 17:13:06 IP:59.125.xxx.xxx 訂閱
與各位分享,我試出來的成果,這樣就可以用程式儲存檔案囉^^ <textarea class="cpp" rows="10" cols="60" name="code">// 轉EXCEL Variant ExcelAp,WorkBooks,WorkBook,Sheets,Sheet; Variant Range, FColumns, Cell,Item; // 新增一worksheet ExcelAp = CreateOleObject("Excel.Application"); ExcelAp.OlePropertySet("Visible",false); WorkBooks=ExcelAp.OlePropertyGet("Workbooks"); WorkBook=WorkBooks.OleFunction("Add"); Sheets=WorkBook.OlePropertyGet("Worksheets"); // 設定worksheet 的名稱 Sheet=Sheets.OlePropertyGet("Item",1); Sheet.OlePropertySet("Name","總表"); // 設定欄高 FColumns = Sheet.OlePropertyGet("Rows",1); FColumns.OlePropertySet("RowHeight",30); // 設定欄位名稱 Cell = Sheet.OlePropertyGet("Cells",2,1); Cell.OlePropertySet("Value","Date"); Cell = Sheet.OlePropertyGet("Cells",2,2); Cell.OlePropertySet("Value","Recipe"); // 合併儲存格 Range = Sheet.OlePropertyGet("Range",Sheet.OlePropertyGet("Cells",1,3), Sheet.OlePropertyGet("Cells",1,5)); Range.OleFunction("Merge"); Range.OlePropertySet("Value","數量"); Cell = Sheet.OlePropertyGet("Cells",2,3); Cell.OlePropertySet("Value","Total"); Cell = Sheet.OlePropertyGet("Cells",2,4); Cell.OlePropertySet("Value","OK"); Cell = Sheet.OlePropertyGet("Cells",2,5); Cell.OlePropertySet("Value","NG"); // 儲存檔案 ExcelAp.OlePropertySet("DisplayAlerts", false); WorkBook.OleProduce("SaveAs", sFileName.c_str()); WorkBook.OleProduce("Close"); // 釋放記憶體 VarClear(Item); VarClear(Cell); VarClear(FColumns); VarClear(Range); VarClear(Sheet); VarClear(Sheets); VarClear(WorkBook); VarClear(WorkBooks); ExcelAp.OleFunction("Quit"); VarClear(ExcelAp); </textarea>
系統時間:2024-04-26 11:19:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!