2013-07-09 40 views
0

我有一個Excel電子表格,希望從使用.Net框架中提取數據。工作表看起來像這樣的方式:獲取單元格組的範圍Excel C++/cli

 A  B C D E F G 
1 |hello| by | it |____|____| it | is | 
2 | Hi | he | To |____|____|you | are| 

我怎麼會得到兩個不同的範圍拉兩個「表」分爲兩個不同的數據表?

我知道有

Excel::Range^ RANGE = Worksheet->Cells; 

但對於一個我不明白如何利用範圍。而且,在閱讀之後,它顯然會返回工作表的整個範圍,並且不會將兩個「表格」分開。

有誰知道我怎麼能拿範圍「A1:C2」和F1:?G2"

+0

我不知道我是否真的瞭解你想要做或沒有什麼,但如果你想創建範圍從A1到C2,我建議你試試get_Range方法。像Worksheet-> get_Range(Worksheet-> Cells [1,1],Worksheet-> Cells [2,3]); http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.get_range(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp – gpalex

回答

0

Worksheet->Cells被認爲是整個電子表格你問它代表了所有細胞Range^ (引用MSDN:「返回表示工作表上所有單元格的Range對象(不僅僅是當前使用的單元格)」)

A Range對象簡單地表示一個它與工作表中的子表格無關,例如你的「A1:C2」和「F1:G2」是

要獲取子表,請使用CurrentRegion屬性。我相信要做到這一點的方法是獲取單元格A1並調用CurrentRegion來獲取A1:C2,然後在F1上獲取F1:G2。

(顯然,更好的設計是要在工作簿中自己的表你的兩個子表,如果可能的話)。

0
//the namespace you'll need to include, Project->Properties->Add New Reference 
using namespace Microsoft::Office::Interop::Excel; 

//This is your particular Excel instance 
Excel::Application^ xl = gcnew Excel::Application(); 
//I like being able to see the sheet for simple programs 
xl->Visible = true; 

Excel::Workbook^ wb = xl->Workbooks->Open(Path2ExcelFile, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing, Type::Missing); 
Excel::Worksheet^ ws1 = static_cast<Excel::Worksheet^>(wb->Sheets[SheetName1]); 
Excel::Worksheet^ ws2 = static_cast<Excel::Worksheet^>(wb->Sheets[SheetName2]); 

現在,我們可以得到範圍

Range^ rng1 = ws->Range["A1:C2","A1:C2"]; 
Range^ rng1 = ws->Range["F1:G2","F1:G2"]; 

這裏是如何獲得單個單元格的值

String^ val1 = ws->Range["A1","A1"]->Value2->ToString(); 

然後另一種方法來獲取單個細胞

ws->Range[((Excel::Range^)ws->Cells[(System::Object^)rowInteger, (System::Object^)columnInteger]), ((Excel::Range^)ws->Cells[(System::Object^)rowInteger, (System::Object^)columnInteger])]->Value2->ToString(); 
相關問題