2012-12-25 78 views
8

Tôi có mã hiện tại, loại "AAPL" này thành một bảng excel và trả về giá trị tương ứng.chuyển đổi một chuỗi thành một biến thể trong C++

Tôi muốn làm cho nó để sau khi cout << "Ticker: "; tôi có thể gõ vào một biểu tượng ticker (như AAPL) và sử dụng nó như là variant_t ticker = "xxx". Tôi đã cố gắng làm như vậy bằng cách sử dụng string nhưng tôi nhận được một lỗi nói rằng không thể chuyển đổi từ 'std::string to const _variant_t &' Có anyway để làm điều này? Cảm ơn trước.

XL->Workbooks->Open(L"F:\\xxx\\Desktop\\fxxxx.xlsx"); 
Excel::RangePtr pRange = pSheet->Cells; 

cout << "Ticker: "; 
variant_t ticker = "AAPL"; 

pRange->Item[2][1] = ticker; 
double value = pRange->Item[2][2]; 
cout << "\n Value = " << value << endl; 

Trả lời

6

Gọi ticker.SetString(str.c_str()) sẽ thực hiện công việc.

Xem: http://msdn.microsoft.com/en-us/library/x295h94e%28v=vs.100%29.aspx

+0

Cảm ơn rất nhiều sự giúp đỡ của bạn, tôi đã cố gắng thêm này trong dòng khác nhau, nhưng gặp phải lỗi, mà chính xác nơi tôi đặt nó ? – user1594369

+0

Một nơi nào đó giữa 'biến_t ​​ticker;' và 'pRange-> Item .. = ticker;'. Tất nhiên 'str' nên được bất cứ điều gì std :: string đầu vào của bạn được gọi là. Và bạn có thể muốn làm điều đó SAU bạn đã đọc trong chuỗi, hoặc nó sẽ không có hiệu lực đúng. ;) –

+0

Bạn có thể muốn thêm câu trả lời của mình dưới dạng "câu trả lời" (làm cho mã dễ đọc hơn nhiều) - và nếu bạn nghĩ tôi đã ghen tị để giúp bạn đến đó, "chấp nhận" câu trả lời của tôi. –

2

Dưới đây là đoạn code làm việc:

XL->Workbooks->Open(L"F:\\xx\\Desktop\\xxz.xlsx");        //Open databse 
    Excel::_WorksheetPtr pSheet = XL->ActiveSheet;          //Point to Active Sheet 
    Excel::RangePtr pRange = pSheet->Cells;            //Point to Active Cells 
    cout << " Ticker: ";                //Prompt Ticker 
    string tick;                  //Define string "tick" to store ticker 
    cin >> tick;                  //Store ticker 
    variant_t ticker;                 //Define variant to be used for ticker 
    ticker.SetString(tick.c_str());              //Convert string to variant         
    pRange->Item[2][1] = ticker;              //Write ticker to cell 
    double bi = pRange->Item[2][2];              //Read Beta, store as "bi" 
    cout << "\n Beta = " << bi << endl;             //Return Value 
    XL->Application->Quit(); 
Các vấn đề liên quan