2017-03-04 5 views
1

getExcelFile()という名前の関数を作成してExcelファイルの内容を取得し、構造体の配列に格納します。最初に、csvファイルの1行を読み込み、デリミタを使用したかったのです。次に、内容をQStringListに追加し、forループを使用して構造体の配列を反復処理し、内容を追加します。 datalist.append((line.split( '、'))));)と書かれている行以外はすべて正常に動作しています。ヘルプは非常に高く評価されるだろう!QT CSVファイルの内容を解析して構造体の配列に格納する

void Widget::getExcelFile(){ 
    //Name of the Qfile object. 
    //filename is the directory of the file once it has been selected in prompt 
    QFile thefile(filename); 
    //QStringList named datalist. 
    QStringList datalist; 
    //If the file is successfully open 
    if (thefile.open(QIODevice::ReadOnly | QIODevice::Text)){ 
     qDebug() << "File opened successfully"; 
     while (!thefile.atEnd()){ 
        QByteArray line = thefile.readLine(); 
        datalist.append((line.split(','))); 


       } 

    } 

    qDebug() << datalist; 
    ui->textEdit->setPlainText(fileContent); 
} 
+0

の可能性のある重複:https://stackoverflow.com/questions/27318631/parsing-through-a-csv-file-in-qt – besc

答えて

0

CSVファイルはそれよりも読みにくいです。

特定のファイルには単純なレコードが含まれていますが、ExcelではCSVのw番目のエスケープや欠損値などが作成されます。

CSVパーサーを使用すると、CSVファイル構造(その列にある列とその種類)と値の両方をクエリできます。パーサは何も複雑ではありませんが、メモリの割り当てやフィールドの分割、カラムへの割り当ての面倒を扱います。

シンプルなC構造を作成する場合は、一致しないCSVオブジェクトをすべて破棄します。オブジェクトがマッチした場合、それはgetfieldへの呼び出しを伴う単純なループです。次に、CSVオブジェクトを破棄します。

http://www.malcolmmclean.site11.com/www/CSVtoC/csvtoc.html

関連する問題