免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
c++解析excel的方法(tinyXml)

一般的腳本都是適合程序猿來操作的,再也沒有比excel表格這樣強(qiáng)大,且被大多數(shù)人廣泛接受的腳本配置工具(在我眼中可以看做一個(gè)腳本配置工具)


于是我寫了一套算法來解析excel表格。得到一個(gè)多維數(shù)組(vector向量,來獲取excel表格中的數(shù)據(jù))

解析方法需要用到tinyXml解析工具,對于這個(gè)工具不太熟悉的朋友可以看看我之前寫過的關(guān)于tinyXml工具的入門博客。



下面就是解析方法:

1,在編輯完excel表格后,保存為xml格式就可以了。

vector<vector<string> > HelloWorld::wordVector(const char * xmlName)

{

    vector<vector<string> > ivec;

    

    

    //創(chuàng)建一個(gè)XML的文檔對象。

    TiXmlDocument *myDocument = new TiXmlDocument(CCFileUtils::fullPathFromRelativePath(xmlName));

    myDocument->LoadFile();

    //獲得根元素,即Persons。

    TiXmlElement *RootElement = myDocument->RootElement();

    //輸出根元素名稱,即輸出Persons。

    

  

    TiXmlElement * element1 = RootElement->FirstChildElement("Worksheet");

    TiXmlElement * element2 = element1->FirstChildElement("Table");

    TiXmlElement * element3 = element2->FirstChildElement("Row");

    

   

    TiXmlElement * memoryRowNodeElement = element3;

    

    

    

    while (true)//一共有多少組單詞

    {

        if (memoryRowNodeElement == NULL)

        {

            break;

        }


        TiXmlElement * element40;

    

        TiXmlElement * element41 = memoryRowNodeElement->FirstChildElement("Cell");

        

        element40 = element41;

        vector<string> tempIvec;

        

        while (true)//一組單詞中有多少個(gè)元素構(gòu)成(英文單詞,中文解釋,記憶方法等)

        {

       

            if (element41==NULL)

            {

                ivec.push_back(tempIvec);

                break;

            }

            TiXmlElement * element42 = element41->FirstChildElement("Data");

            TiXmlElement * element43 = element42->FirstChildElement("Font");

            if (element43 == NULL)

            {

                string s1(element42->GetText());

                tempIvec.push_back(s1);

               //  printf("%s\n",s1.c_str());

            }

            else

            {

                TiXmlElement * element53 = element42->FirstChildElement("Font");

                string s2(element53->GetText());

                

                

                while (true)

                {

                    TiXmlElement * element54 = element53->NextSiblingElement();

                    element53 = element54;

                    

                    if (element54!=NULL)

                    {

                        const char* char1 = element54->GetText();

                        string tempString(char1);

                        s2 = s2+tempString;

                        

                        // printf("%d\n",(int)element54);

                        // printf("%s\n",s2.c_str());

                        

                    }

                    else

                    {

                        

                        tempIvec.push_back(s2);

                        

                        

                        break;

                    }

                    

                }

            }

            element41 = element40->NextSiblingElement("Cell");

            element40 = element41;

            

          

            

        }

        if (memoryRowNodeElement == NULL)

        {

            break;

        }

        TiXmlElement * tempElementRow = memoryRowNodeElement->NextSiblingElement("Row");

         

         memoryRowNodeElement = tempElementRow;

    }

    


    return ivec;

}




2,以上是解析的所有代碼,可以直接使用。

使用方法為


string str = "WordList1.xml";//標(biāo)注出要解析的xml文件名字

const char * char1 = str.c_str();

    

vector<vector<string> > ivec = wordVector(char1);//開始解析

    

3,遍歷2維vector<vector<string> > 的方法    

void HelloWorld::traversingVector(vector<vector<string> > ivec)

{

    for (int i = 0 ; i<ivec.size();i++)

    {

        

        vector<string> tempIvec = ivec[i];

        

        for (int j = 0; j<tempIvec.size(); j++)

        {

            string str = tempIvec[j];

            

            cout<<str<<endl;

        }

        cout<<"http://///////////////////"<<endl;

    }

}


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
第一部分 基礎(chǔ)語言之三數(shù)組和指針
Java面試題集
使用XML解析器(TinyXML)編程之源代碼講解
TiXml使用詳解
string類型、vector容器和iterator迭代器、bitset類型
C++ Primer第三章字符串,向量和數(shù)組習(xí)題
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服