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

C++ Builder 與 EXCEL 連結取值與存值

 
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-04 17:57:50 IP:140.135.xxx.xxx 未訂閱
引言:這個方法剛剛好解決了我手邊的一個大問題,其他討論區的方法大多行不通
下面的例子,是我在其他討論區看到的,而上面的引言是一位網友的使用感想
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  WideString aa; //定義aa
  if (OpenDialog1->Execute()) //直接打開檔案選擇視窗
 {
  aa=OpenDialog1->FileName; //指定檔名
  ExcelApplication1->Connect(); //EXCEL APPLICATION 連接
  ExcelApplication1->Workbooks->Open(aa);
  ExcelWorkbook1->ConnectTo(ExcelApplication1->get_ActiveWorkbook());
  ExcelApplication1->set_Visible(0,true); //指定EXCEL視窗為可視
  ExcelWorksheet1->ConnectTo(ExcelWorkbook1->get_ActiveSheet());
  //連接工作表
 }
}    void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Variant v5(1); 
 Variant v6(1); 
 Variant v7; 
 Variant KKK(String("ddd"));
 v7=ExcelWorksheet1->Cells->get__default(v5,v6); //取列1欄1的值
 //若要寫入值可用
 ExcelWorksheet1->Cells->set__default(v5,v6,KKK);//將列1欄1的值寫入ddd
} 
 
~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 - taishyang 於 2003/05/04 18:00:55
jimmy_lou45
一般會員


發表:10
回覆:18
積分:5
註冊:2003-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-20 13:37:30 IP:218.162.xxx.xxx 未訂閱
前輩: 對不起,我知道這樣真的很麻煩您,可是我真的"很用心"去看您給的程式 我剛在起步,如果您不嫌棄的話...可不可以給我的"註解"修改, 或者是更正我的錯誤,...... 拜託您了.....感恩~ ●☆:是晚輩的問題註解... void __fastcall TForm1::Button1Click(TObject *Sender) { 1 WideString aa; //定義aa 2 if (OpenDialog1->Execute()) //直接打開檔案選擇視窗 3 { 4 aa=OpenDialog1->FileName; //指定檔名 ●☆// Q: 將檔名放進去,需要加路徑嗎?ex:C:\1.xls ●☆// 可是我加了,compiler後,還是錯耶~ 5 ExcelApplication1->Connect(); //EXCEL APPLICATION 連接 6 ExcelApplication1->Workbooks->Open(aa); 7 ExcelWorkbook1->ConnectTo(ExcelApplication1->get_ActiveWorkbook()); 8 ExcelApplication1->set_Visible(0,true); //指定EXCEL視窗為可視 9 ExcelWorksheet1->ConnectTo(ExcelWorkbook1->get_ActiveSheet()); 10 //連接工作表 11 } 12 } ●☆// Q: Button1Click的動作是連接 bcb 和 excel ?然後讓 excel 可以被看到? void __fastcall TForm1::Button2Click(TObject *Sender) { 13 Variant v5(1); 14 Variant v6(1); 15 Variant v7; 16 Variant KKK(String("ddd")); 17 v7=ExcelWorksheet1->Cells->get__default(v5,v6); //取列1欄1的值 18 //若要寫入值可用 19 ExcelWorksheet1->Cells->set__default(v5,v6,KKK);//將列1欄1的值寫入ddd 20 } ●☆// Q:(1) Variant 是宣告成什麼型態的函數? (2) v5(1),v6(1)是什麼意思? (3) 13~16行,這樣的宣告模式,主要的目的是? ●☆// Q: 以下是我compiler程式所出現的錯誤: 1. [C Error] Unit1.cpp(23): E2280 Member identifier expected ●☆//第一行指的是什麼意思阿? ●☆// 3~5行以下通通都是找不到耶!! 是不是要放什麼 VCL 的元件阿? ------------------------------------------------------------------------------------------------ 2. [C Error] Unit1.cpp(24): E2451 Undefined symbol 'ExcelApplication1' 3. [C Error] Unit1.cpp(26): E2451 Undefined symbol 'ExcelWorkbook1' 4. [C Error] Unit1.cpp(28): E2451 Undefined symbol 'ExcelWorksheet1' 5. [C Error] Unit1.cpp(40): E2451 Undefined symbol 'ExcelWorksheet1'
jimmy_lou45
一般會員


發表:10
回覆:18
積分:5
註冊:2003-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-21 11:14:11 IP:140.134.xxx.xxx 未訂閱
出現的錯誤,.......,不知道是為什麼?????    Build   [C++ Error] Unit1.cpp(43): E2316 'get__default' is not a member of 'Range'   [C++ Error] Unit1.cpp(45): E2316 'set__default' is not a member of 'Range'    以下為我key的程式.. ------------------------------------------------------------------    //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "Excel_2K_SRVR" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { WideString aa; //定義aa if (OpenDialog1->Execute()) //直接打開檔案選擇視窗 { aa=OpenDialog1->FileName; //指定檔名 ExcelApplication1->Connect(); //EXCEL APPLICATION 連接 ExcelApplication1->Workbooks->Open(aa); ExcelWorkbook1->ConnectTo(ExcelApplication1->get_ActiveWorkbook()); ExcelApplication1->set_Visible(0,true); //指定EXCEL視窗為可視 ExcelWorksheet1->ConnectTo(ExcelWorkbook1->get_ActiveSheet()); //連接工作表 } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Variant v5(1); Variant v6(1); Variant v7; Variant KKK(String("ddd")); v7=ExcelWorksheet1->Cells->get__default(v5,v6); //取列1欄1的值 //若要寫入值可用 ExcelWorksheet1->Cells->set__default(v5,v6,KKK);//將列1欄1的值寫入ddd } //---------------------------------------------------------------------------
jimmy_lou45
一般會員


發表:10
回覆:18
積分:5
註冊:2003-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-21 11:14:22 IP:140.134.xxx.xxx 未訂閱
出現的錯誤,.......,不知道是為什麼?????    Build   [C++ Error] Unit1.cpp(43): E2316 'get__default' is not a member of 'Range'   [C++ Error] Unit1.cpp(45): E2316 'set__default' is not a member of 'Range'    以下為我key的程式.. ------------------------------------------------------------------    //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "Excel_2K_SRVR" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { WideString aa; //定義aa if (OpenDialog1->Execute()) //直接打開檔案選擇視窗 { aa=OpenDialog1->FileName; //指定檔名 ExcelApplication1->Connect(); //EXCEL APPLICATION 連接 ExcelApplication1->Workbooks->Open(aa); ExcelWorkbook1->ConnectTo(ExcelApplication1->get_ActiveWorkbook()); ExcelApplication1->set_Visible(0,true); //指定EXCEL視窗為可視 ExcelWorksheet1->ConnectTo(ExcelWorkbook1->get_ActiveSheet()); //連接工作表 } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Variant v5(1); Variant v6(1); Variant v7; Variant KKK(String("ddd")); v7=ExcelWorksheet1->Cells->get__default(v5,v6); //取列1欄1的值 //若要寫入值可用 ExcelWorksheet1->Cells->set__default(v5,v6,KKK);//將列1欄1的值寫入ddd } //---------------------------------------------------------------------------
YAUYAU
一般會員


發表:38
回覆:26
積分:12
註冊:2003-09-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-08 21:34:51 IP:140.122.xxx.xxx 未訂閱
出現的錯誤,.......,不知道是為什麼????? Build [C Error] Unit1.cpp(43): E2316 'get__default' is not a member of 'Range' [C Error] Unit1.cpp(45): E2316 'set__default' is not a member of 'Range' === 用法錯誤而已 將'get__default' 及'set__default'改成'get__Default'及'set__Default' 即可解決
husser123
一般會員


發表:14
回覆:10
積分:4
註冊:2005-04-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-19 18:10:00 IP:202.145.xxx.xxx 未訂閱
各位大大好; 程式結束時,若我有寫入數值 Excel會出現"檔案已被改變,是否存檔?" 若我要跳過詢問畫面,直接存檔(原來開啟的檔名) 我該如何做呢? 謝謝!
andwhose
一般會員


發表:0
回覆:1
積分:0
註冊:2005-04-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-21 14:39:33 IP:211.21.xxx.xxx 未訂閱
引言: 各位大大好; 程式結束時,若我有寫入數值 Excel會出現"檔案已被改變,是否存檔?" 若我要跳過詢問畫面,直接存檔(原來開啟的檔名) 我該如何做呢?
利用 Set_DisplayAlerts 如下: ExcelApplication1->Set_DisplayAlerts(0, false); ExcelApplication1->Save(); ExcelApplication1->Quit(); 即可! 發表人 - andwhose 於 2005/04/21 15:04:18
------
^^^^^^^^^^^^^^^^^^^^^^^
Blue who say and whose
vvvvvvvvvvvvvvvvvvvvvvv
daniel0155
一般會員


發表:0
回覆:1
積分:0
註冊:2006-11-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-01-04 17:03:09 IP:61.229.xxx.xxx 訂閱
不好意思

請問有移動sheet的函數嗎?

因為我想搜尋全部的分頁 有辦法做到嗎?

另外 set__Default如果重複第二次似乎沒有效果....

我必須先清除掉分頁內容再重新寫入

有辦法針對一個CELL做修改嗎?

像這種元件為什麼我找說明文件都沒有呢?

不好意思 只是我看了很多文章

但都沒有比較簡單的方法
系統時間:2024-11-25 12:25:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!