如何利用OLE方法在EXCEL內插入附件 |
尚未結案
|
775153
一般會員 發表:1 回覆:3 積分:0 註冊:2006-07-21 發送簡訊給我 |
請教大大們,如何能輸出EXCEL檔案時插入一個物件進去
搜尋了很久還是找不到答案,嘗試利用excel的巨集錄製出的程式來轉換 巨集錄製出的程式: [code vb] ActiveSheet.OLEObjects.Add(Filename:= _ "D:\Test.txt", Link:=False, _ DisplayAsIcon:=True, IconFileName:="packager.exe", IconIndex:=0, _ IconLabel:="").Select [/code] 希望轉為BCB: [code cpp] AnsiString szXlsFile1=ExtractFilePath(Application->ExeName) "Test.txt"; ExcelObjects = ExcelSheet.OlePropertyGet("OLEObjects"); ExcelObjects.OleFunction("Add", StringToOleStr(szXlsFile1) ); [/code] 一直在OleFunction這行都會出錯,不知道要如何修正,還是有其他方法呢? 煩請大大們幫忙,謝謝 |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
您真是惜字如金啊, 只寫 一直在OleFunction這行都會出錯, 請問出什麼錯, 有訊息代碼或文字嗎? 是 compile time 錯 還是 run time 錯? 這些都是除錯的重要資訊, 不然, 很難 請試一下 先定義一個 range, 然後 oleobject->olefunction 寫成 range->olefunction(.......); 猜的. 等一下, bcb 是用 -> 而不是 . 吧 先把 ole什麼.什麼 都改成 ole什麼->什麼 看看
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2009-04-30 10:31:46, 註解 無‧
|
775153
一般會員 發表:1 回覆:3 積分:0 註冊:2006-07-21 發送簡訊給我 |
很抱歉沒有描述清楚
程式編譯會OK,但只要一執行到ExcelObjects.OleFunction("Add", StringToOleStr(szXlsFile1) ); 就發生下面的error message Project Project1.exe raised execption class EOleSysError with message '發生例外狀況。'. Process Stopped. Use Step or Run to continue. 貼出程式不知道會不會較好讓您瞭解? [code cpp] void __fastcall TForm1::Button3Click(TObject *Sender) { Variant ExcelApp, ExcelBooks, ExcelBook, ExcelSheets, ExcelSheet, UsedRange, ExcelObjects; Variant ExcelRange, ExcelColumn, ColumnCount, ExcelRow, RowCount; try { ExcelApp=Variant::CreateObject("Excel.Application"); } catch(Exception &e) { ShowMessage(e.Message); } if(ExcelApp.IsEmpty()) { return; } ExcelApp.OlePropertySet("Visible", true); ExcelBooks=ExcelApp.OlePropertyGet("Workbooks"); try { AnsiString szXlsFile1=ExtractFilePath(Application->ExeName) "test1.xls"; ExcelBook=ExcelBooks.OleFunction("Open", StringToOleStr(szXlsFile1)); } catch(Exception &e) { ShowMessage(e.Message); } if(ExcelBook.IsEmpty()) { return; } ExcelSheets=ExcelBook.OlePropertyGet("Worksheets"); ExcelSheet=ExcelSheets.OlePropertyGet("Item", 1); AnsiString szXlsFile1=ExtractFilePath(Application->ExeName) "Test.txt"; ExcelObjects = ExcelSheet.OlePropertyGet("OLEObjects"); ExcelObjects.OleFunction("Add", StringToOleStr(szXlsFile1) ); } [/code]
編輯記錄
775153 重新編輯於 2009-05-02 15:35:37, 註解 無‧
|
helsing
一般會員 發表:7 回覆:15 積分:4 註冊:2004-07-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |