如何在Excel檔案儲存後不出現對話窗,直接以設定的檔名來儲存 |
缺席
|
Dreams
一般會員 發表:1 回覆:3 積分:0 註冊:2004-03-25 發送簡訊給我 |
請問各位大大, 在以下的格式輸出後,已經使用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 發送簡訊給我 |
與各位分享,我試出來的成果,這樣就可以用程式儲存檔案囉^^ <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>
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |