写程序读出excel文件内容插入数据库,但是每条记录都被插了两遍,怎么回事呀
代码如下~~
int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    QAxWidget excel("Excel.Application");
    excel.setProperty("Visible", true);
    //显示当前窗口
    QAxObject * workbooks = excel.querySubObject("WorkBooks");
    workbooks->dynamicCall("Open (const QString&)", QString("c:/data/bbb.xls"));
    //打开已存在的工作簿C:/data/bbb.xls
    QAxObject * workbook = excel.querySubObject("ActiveWorkBook");
    //获取活动工作簿
    QAxObject * worksheets = workbook->querySubObject("WorkSheets");
    //获取所有工作表
    if(createConnection())
    {      
        QAxObject * worksheet = workbook->querySubObject("Worksheets(int)", 1);
        //获取第1个工作表
        QAxObject * usedrange = worksheet->querySubObject("UsedRange");
        //工作表中的已用区域
        QAxObject * rows = usedrange->querySubObject("Rows");
        //行
      
        int intRowStart = usedrange->property("Row").toInt();//开始行
        int intRows = rows->property("Count").toInt();//行数        QAxObject * range1 = worksheet->querySubObject("Cells (int,int)",4,8);
        QAxObject * range2 = worksheet->querySubObject("Cells (int,int)",5,7);
        QAxObject * range_c = worksheet->querySubObject("Cells (int,int)",4,22);
        QString class_name1 = range1->property("Value").toString();//课程名
        QString exam_time1 = range2->property("Value").toString();//时段
        QString classroom_c = range_c->property("Value").toString();//教室
        QSqlQuery query;
        query.exec("create table `"+class_name1+"` (classname varchar(50) not null,exam_time varchar(50) not null,"
                   "num varchar(10) not null,xueyuan varchar(50) not null,zhuanye varchar(50) not null,"
                   "class varchar(30) not null,stu_num varchar(30) not null,name varchar(30) not null,"
                   "class_ID varchar(50) not null,classroom varchar(20) not null)");
        for (int i = intRowStart; i < intRowStart + intRows; i++)
        {
            QAxObject * range3 = worksheet->querySubObject("Cells (int,int)",i,2);
            QAxObject * range4 = worksheet->querySubObject("Cells (int,int)",i,5);
            QAxObject * range5 = worksheet->querySubObject("Cells (int,int)",i,10);
            QAxObject * range6 = worksheet->querySubObject("Cells (int,int)",i,15);
            QAxObject * range7 = worksheet->querySubObject("Cells (int,int)",i,20);
            QAxObject * range8 = worksheet->querySubObject("Cells (int,int)",i,25);
            QAxObject * range9 = worksheet->querySubObject("Cells (int,int)",i,28);
            QAxObject * range10 = worksheet->querySubObject("Cells (int,int)",i,22);
            int cell3 = range3->property("Value").toInt();
            QString cell4 = range4->property("Value").toString();
            QString cell5 = range5->property("Value").toString();
            QString cell6 = range6->property("Value").toString();
            QString cell7 = range7->property("Value").toString();
            QString cell8 = range8->property("Value").toString();
            QString cell9 = range9->property("Value").toString();
            QString classroom1 = range10->property("Value").toString();//教室      
            if(classroom1 != NULL)
            {
                classroom_c = classroom1;
            }
            else
            {
                if(cell3 > 0 && cell3 < 300)
                {
                    QString cell_3 = QString::number(cell3,10);
                    QSqlQuery q;
                    q.exec("insert into `"+class_name1+"`(classname,exam_time,num,xueyuan,zhuanye,class,stu_num,name,class_ID,classroom) "
                               "values ('"+class_name1+"','"+exam_time1+"','"+cell_3+"','"+cell4+"',"
                               "'"+cell5+"','"+cell6+"','"+cell7+"','"+cell8+"','"+cell9+"','"+classroom_c+"')");
                    q.exec();                }            }
        }
    }    workbook->dynamicCall("Close (Boolean)", false);    excel.dynamicCall("Quit (void)");    delete workbook;
    delete workbooks;
    delete worksheets;    return a.exec();
}