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

請教用OLE方式讀取 EXCEL檔案時,如何知道要讀取的範圍

答題得分者是:couchpotato
diroex
一般會員


發表:38
回覆:51
積分:22
註冊:2005-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-22 22:52:21 IP:218.175.xxx.xxx 訂閱
請教用OLE方式讀取 EXCEL檔案時,
要如何知道要讀取的資料多少筆?及多少欄位呢?
couchpotato
初階會員


發表:1
回覆:16
積分:33
註冊:2008-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-23 16:30:34 IP:220.128.xxx.xxx 未訂閱
你好:
以下程式碼供你參考

[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant ExcelApp, ExcelBooks, ExcelBook, ExcelSheets, ExcelSheet, Cell, Var;
int MaxCols, MaxRow, TotalCell=0;

ExcelApp=Variant::CreateObject("Excel.Application");
ExcelApp.OlePropertySet("Visible", true);

ExcelBooks=ExcelApp.OlePropertyGet("Workbooks");

AnsiString szXlsFile1=ExtractFilePath(Application->ExeName) "test.xls";
ExcelBook=ExcelBooks.OleFunction("Open", StringToOleStr(szXlsFile1));

ExcelSheets=ExcelBook.OlePropertyGet("Worksheets");
ExcelSheet=ExcelSheets.OlePropertyGet("Item", 1);

//取得最大行數
MaxCols =ExcelSheet.OlePropertyGet("UsedRange").OlePropertyGet("Columns").OlePropertyGet("Count");
//取得最大列數
MaxRow = ExcelSheet.OlePropertyGet("UsedRange").OlePropertyGet("Rows").OlePropertyGet("Count");
//取得欄位數
for(int i=1;i<=MaxRow;i )
{
for(int j=1;j<=MaxCols;j )
{
Cell=ExcelSheet.OlePropertyGet("Cells",i,j);
Var=Cell.OlePropertyGet("Value"); // 讀取該 cell 的值到變數 Var 中
if (String(Var)!="") // 轉換取得的資料.
{
TotalCell = 1;
}
}
}


Edit1->Text=String(MaxCols);
Edit2->Text=String(MaxRow);
Edit3->Text=String(TotalCell);

}
[/code]
------
我是機器人,我不接受簡訊.
編輯記錄
couchpotato 重新編輯於 2008-05-23 16:33:10, 註解 版面修改‧
couchpotato 重新編輯於 2008-05-23 16:42:19, 註解 無‧
couchpotato 重新編輯於 2008-05-23 16:43:02, 註解 無‧
couchpotato 重新編輯於 2008-05-23 16:55:31, 註解 無‧
系統時間:2024-04-25 14:02:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!