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

存取Excel會有錯誤

答題得分者是:axsoft
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-25 16:47:35 IP:139.223.xxx.xxx 未訂閱
各位大大: 請問一下,我參考了 http://delphi.ktop.com.tw/topic.php?topic_id=22668 的程式,我只打了前面三行
Variant Excel,Workbooks,Workbook;
Excel=CreateOleObject("Excel.Application");
Excel.OlePropertySet("Visible",true);
就出現了下面的錯誤, [Linker Error] Unresolved external '__stdcall System::Variant::OlePropertySet(const System::AnsiString&, TAutoArgsBase&)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ 請問有人知道為什麼嗎??? 我的環境是 Win2k BCB5.0 謝謝各位大大.....
paf
初階會員


發表:36
回覆:70
積分:41
註冊:2002-12-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-25 17:04:33 IP:218.164.xxx.xxx 未訂閱
引言: 各位大大: 請問一下,我參考了 http://delphi.ktop.com.tw/topic.php?topic_id=22668 的程式,我只打了前面三行
Variant Excel,Workbooks,Workbook;
//Excel=CreateOleObject("Excel.Application");
改成Excel=Variant::CreateObject("Excel.Application");
Excel.OlePropertySet("Visible",true);
就出現了下面的錯誤, [Linker Error] Unresolved external '__stdcall System::Variant::OlePropertySet(const System::AnsiString&, TAutoArgsBase&)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ 請問有人知道為什麼嗎??? 我的環境是 Win2k BCB5.0 謝謝各位大大.....
發表人 - paf 於 2003/07/25 17:11:48
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-25 17:16:21 IP:139.223.xxx.xxx 未訂閱
引言: 各位大大: 請問一下,我參考了 http://delphi.ktop.com.tw/topic.php?topic_id=22668 的程式,我只打了前面三行 Variant Excel,Workbooks,Workbook; //Excel=CreateOleObject("Excel.Application"); 改成Excel=Variant::CreateObject("Excel.Application"); Excel.OlePropertySet("Visible",true); 就出現了下面的錯誤, [Linker Error] Unresolved external '__stdcall System::Variant::OlePropertySet(const System::AnsiString&, TAutoArgsBase&)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ 請問有人知道為什麼嗎??? 我的環境是 Win2k BCB5.0 謝謝各位大大.....
paf 你好: 雖然解決了上面的問題,但出現了更多的 error...如下 [C Error] sysvari.h(2561): E2450 Undefined structure 'TAutoArgs<1>' [C Error] sysvari.h(2561): E2449 Size of 'args' is unknown or zero [C Error] sysvari.h(2561): E2450 Undefined structure 'TAutoArgs<1>' [C Error] sysvari.h(2562): E2094 'operator ' not implemented in type 'TAutoArgs<1>' for arguments of type 'int' [C Error] sysvari.h(2563): E2450 Undefined structure 'TAutoArgs<1>' [C Error] sysvari.h(2563): E2285 Could not find a match for 'Variant::OlePropertySet(const AnsiString,undefined)' 但謝謝你的解答....
paf
初階會員


發表:36
回覆:70
積分:41
註冊:2002-12-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-25 17:28:28 IP:218.164.xxx.xxx 未訂閱
引言:
引言: 各位大大: 請問一下,我參考了 http://delphi.ktop.com.tw/topic.php?topic_id=22668 的程式,我只打了前面三行 Variant Excel,Workbooks,Workbook; //Excel=CreateOleObject("Excel.Application"); 改成Excel=Variant::CreateObject("Excel.Application"); Excel.OlePropertySet("Visible",true); 就出現了下面的錯誤, [Linker Error] Unresolved external '__stdcall System::Variant::OlePropertySet(const System::AnsiString&, TAutoArgsBase&)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ 請問有人知道為什麼嗎??? 我的環境是 Win2k BCB5.0 謝謝各位大大.....
paf 你好: 雖然解決了上面的問題,但出現了更多的 error...如下 [C Error] sysvari.h(2561): E2450 Undefined structure 'TAutoArgs<1>' [C Error] sysvari.h(2561): E2449 Size of 'args' is unknown or zero [C Error] sysvari.h(2561): E2450 Undefined structure 'TAutoArgs<1>' [C Error] sysvari.h(2562): E2094 'operator ' not implemented in type 'TAutoArgs<1>' for arguments of type 'int' [C Error] sysvari.h(2563): E2450 Undefined structure 'TAutoArgs<1>' [C Error] sysvari.h(2563): E2285 Could not find a match for 'Variant::OlePropertySet(const AnsiString,undefined)' 但謝謝你的解答....
firewing你好: 我也打前面三行..可是我並不會出錯唷.. 我是BCB6.0+WinXP 可否po出你全部完整的程式碼 發表人 - paf 於 2003/07/25 17:33:30
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-25 17:52:26 IP:61.218.xxx.xxx 未訂閱
firewing您好:
 試試下面的方法看看!    #include      Variant vMSExcel;    try {
       vMSExcel = Variant::GetActiveObject("Excel.Application"); 
    } catch (...) {
      vMSExcel = Variant::CreateObject("Excel.Application"); 
    }     vMSExcel.OlePropertySet("Visible", true); 
      |
      |
//處理你想做的事
       |
      | 
vMSExcel.OleFunction("Quit"); 
vMSExcel = Unassigned;     
HAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/07/25 17:56:13
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-25 18:04:17 IP:139.223.xxx.xxx 未訂閱
axsoft 板主: 這樣的話又會發生之前的問題了.... 不過還是謝謝你....
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-25 18:11:50 IP:61.218.xxx.xxx 未訂閱
引言: axsoft 板主: 這樣的話又會發生之前的問題了.... 不過還是謝謝你....
我想我找到你的問題出在哪裡了!試試看
BCB6只要#include 就行了
BCB5還需要#include     //---------------------------------------------------------------------------
#include 
#include 
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Variant vMSExcel,vXLWorkbook, vXLWorkbooks;
  vMSExcel = Variant::CreateObject("Excel.Application");
  vMSExcel.OlePropertySet("Visible", true);
  vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
  vXLWorkbook = vXLWorkbooks.OleFunction("Add");
  try
     {
      vMSExcel = Variant::GetActiveObject("Excel.Application");
     }
  catch (...)
     {
     vMSExcel = Variant::CreateObject("Excel.Application");
     }
  vMSExcel = Unassigned;
}
//---------------------------------------------------------------------------
HAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/07/25 19:25:40
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-26 09:46:07 IP:61.216.xxx.xxx 未訂閱
axsoft 版主: 真的ㄟ....是這樣子沒錯..謝謝你契而不捨的為我解答...
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-01 16:19:46 IP:139.223.xxx.xxx 未訂閱
axsoft 版主: 不好意思...之前我是在家中的電腦測試可以 Run 後來再到公司 Run 時仍然不 Compiler 不能過.... 我有用     
 
  try
     {
      vMSExcel = Variant::GetActiveObject("Excel.Application");
     }
  catch (...)
     {
     vMSExcel = Variant::CreateObject("Excel.Application");
     }
試試看.... 結果執行的 try 內後會出現下面畫面 請問你知道原因嗎??
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-04 16:07:35 IP:139.223.xxx.xxx 未訂閱
各位大大...不好意思... 我現在在公司所碰到的問題還是 [Linker Error] Unresolved external '__stdcall System::Variant::OlePropertySet(const System::AnsiString&, TAutoArgsBase&)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ 不知有人知道為啥嗎??? 我找了好久都解決不出來...
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-08-04 18:05:34 IP:61.218.xxx.xxx 未訂閱
引言: 各位大大...不好意思... 我現在在公司所碰到的問題還是 [Linker Error] Unresolved external '__stdcall System::Variant::OlePropertySet(const System::AnsiString&, TAutoArgsBase&)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ 不知有人知道為啥嗎??? 我找了好久都解決不出來...
看您的錯誤訊息,好像是OlePropertySet()的使用上有問題 HAVE A NICE DAY FOR YOU
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-08-06 16:34:43 IP:139.223.xxx.xxx 未訂閱
axsoft 版主: 謝謝你....我終於找到問題了... 原來我之前為了要寫 dll 的程式,便將 Project->Options->Advanced Compilier 裡的 Calling Convention 改成 Standard Call,只要改回 C 之後便可以了... 提出來與大家分享
系統時間:2024-06-28 18:56:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!