QT TableWidget的使用1:简单使用

其实就是几行.

创建行,从第一行开始创建  

ui->tableWidget->insertRow(i);              //i代表行数,从0开始
 
ui->tableWidget->setItem(i,j,new QTableWidgetItem(QString::number(D[i].x)));  第I行第J列,最后传的数值只能为QString
一个实例,从excel中读取数据并放进QTableWidget显示
struct data{
    int x;
    int y;
    QString month;
    QString day;
    float FFMC;
    float DMC;
    float DC;
    float ISI;
    float temp;
    int RH;
    float wind;
    float rain;
    float area;
}D[1000];
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QAxObject excel("Excel.Application");
        excel.setProperty("Visible",false);
        QAxObject *workbooks = excel.querySubObject("WorkBooks");
        workbooks->dynamicCall("Open (const QString&)",QString("c:/dd.xls"));
        QAxObject *workbook = excel.querySubObject("ActiveWorkBook");//获取活动工作簿
        QAxObject *worksheets = workbook->querySubObject("WorkSheets");//获取所有的工作表,如图
        int intCount = worksheets->property("Count").toInt();           //获取了表的个数
     //   qDebug()<<intCount;                    //输出工作表的个数
        QAxObject *worksheet = workbook->querySubObject("WorkSheets(int)",1);//获取第一个工作表
      //  QAxObject *range = worksheet->querySubObject("Cells(int,int)",1,1); //获取cell的值
        QAxObject *used_range = worksheet->querySubObject("UsedRange");     //获得利用的范围
        QAxObject *rows  = used_range->querySubObject("Rows");
        QAxObject *columns = used_range->querySubObject("Columns");
        int row_start = used_range->property("Row").toInt();          //获得开始行
      //  qDebug()<<row_start;              //已经验证准确
        int column_start  = used_range->property("Column").toInt();     //获得开始列
        int row_count = rows->property("Count").toInt();
       // qDebug()<<row_count;              //已经验证准确
        int column_count = columns->property("Count").toInt();
      //  QString strVal = range->dynamicCall("Value2()").toString();
        for(int i = row_start;i<=row_count;i++){
            for(int j = column_start;j<=column_count;j++){
                QAxObject *cell = worksheet->querySubObject("Cells(int,int)",i,j);
               // QString cell_value = cell->property("Value").toString();   //不好使
                //qDebug()<<i<<j<<cell->dynamicCall("Value2()").toString();
                if(j==1){
                    D[i].x = cell->dynamicCall("Value2()").toInt();
                }
                if(j==2){
                    D[i].y = cell->dynamicCall("Value2()").toInt();
                }
                if(j==3){
                    D[i].month = cell->dynamicCall("Value2()").toString();
                }
                if(j==4){
                    D[i].day = cell->dynamicCall("Value2()").toString();
                }
                if(j==5){
                    D[i].FFMC = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==6){
                    D[i].DMC = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==7){
                    D[i].DC = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==8){
                    D[i].ISI = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==9){
                    D[i].temp = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==10){
                    D[i].RH = cell->dynamicCall("Value2()").toInt();
                }
                if(j==11){
                    D[i].wind = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==12){
                    D[i].rain = cell->dynamicCall("Value2()").toFloat();
                }
                if(j==13){
                    D[i].area = cell->dynamicCall("Value2()").toFloat();
                }
            }
        }
//QTableWidget控件的相关设置
        ui->tableWidget->setColumnCount(13);     //设置9行
        QStringList m_header;
        m_header<<QString("1")<<QString("2")<<QString("3")<<QString("4")<<QString("5")<<QString("6")<<QString("7")<<QString("8")<<QString("9")<<QString("10")<<QString("11")<<QString("12")<<QString("13");
        ui->tableWidget->setHorizontalHeaderLabels(m_header);
        QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
        ui->tableWidget->horizontalHeader()->setStretchLastSection(true); ;
        //显示某块
         for(int i = row_start+1;i<=row_count;i++){
             ui->tableWidget->insertRow(i-2);
             ui->tableWidget->setItem(i-2,0,new QTableWidgetItem(QString::number(D[i].x)));
             ui->tableWidget->setItem(i-2,1,new QTableWidgetItem(QString::number(D[i].y)));
             ui->tableWidget->setItem(i-2,2,new QTableWidgetItem(D[i].month));
             ui->tableWidget->setItem(i-2,3,new QTableWidgetItem(D[i].day));
             ui->tableWidget->setItem(i-2,4,new QTableWidgetItem(QString::number(D[i].FFMC)));
             ui->tableWidget->setItem(i-2,5,new QTableWidgetItem(QString::number(D[i].DMC)));
             ui->tableWidget->setItem(i-2,6,new QTableWidgetItem(QString::number(D[i].DC)));
             ui->tableWidget->setItem(i-2,7,new QTableWidgetItem(QString::number(D[i].ISI)));
             ui->tableWidget->setItem(i-2,8,new QTableWidgetItem(QString::number(D[i].temp)));
             ui->tableWidget->setItem(i-2,9,new QTableWidgetItem(QString::number(D[i].RH)));
             ui->tableWidget->setItem(i-2,10,new QTableWidgetItem(QString::number(D[i].wind)));
             ui->tableWidget->setItem(i-2,11,new QTableWidgetItem(QString::number(D[i].rain)));
             ui->tableWidget->setItem(i-2,12,new QTableWidgetItem(QString::number(D[i].area)));
           //  qDebug()<<D[i].x<<D[i].y<<D[i].month<<D[i].day<<D[i].FFMC<<D[i].DMC<<D[i].DC<<D[i].ISI<<D[i].temp<<D[i].RH<<D[i].wind<<D[i].rain<<D[i].area;
           //  qDebug()<<endl;
         }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值