现在可以读取excel文件到内存,一个一个的显示单元格的内容,但是excel文件中每一行相当于数据库中的一条记录,怎么把excel中的数据一行一行的导入Mysql并生成记录呢?

解决方案 »

  1.   

    方法一、
    把EXCEL文件另存为CSV文件,然后通过MYSQL的 LOAD DATA INFILE 加载到数据库表中。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    方法二、
    在EXCEL通过函数来生成 insert into ....语句,然后一起贴到MYSQL的命令行工具中。
      

  3.   

    方法三、安装MYSQL ODBC,然后在ACCESS创建链接表,直接把EXCEL中数据复制粘贴到链接表中。
      

  4.   

    excel文件不能改动啊
     for (int i = intRowStart; i < intRowStart + intRows-1; i++)
        {
            for (int j = intColStart; j <= intColStart + intCols-1; j++)
            {
                QAxObject * range = worksheet->querySubObject("Cells(int,int)", i, j );
                qDebug() << i << j << range->property("Value");
            }
        }
    这是一个一个读取的代码,怎么把一行插入数据库变成一条记录啊?
      

  5.   

    for (int i = intRowStart+1; i < intRowStart + intRows; i++)
            {
                QAxObject * range1 = worksheet->querySubObject("Cells (int,int)",i,1);
                QAxObject * range2 = worksheet->querySubObject("Cells (int,int)",i,2);
                QAxObject * range3 = worksheet->querySubObject("Cells (int,int)",i,3);
                QAxObject * range4 = worksheet->querySubObject("Cells (int,int)",i,4);
                QString cell1 = range1->property("Value").toString();
                QString cell2 = range2->property("Value").toString();
                QString cell3 = range3->property("Value").toString();
                QString cell4 = range4->property("Value").toString();            qDebug() << cell1 << cell2 << cell3 << cell4 ;
                query.exec("insert into "+sheetname+" values ("+cell1+","+cell2+","+cell3+","+cell4+")");            query.exec();
                }可运,可输入但写不进数据库
      

  6.   

    单步调试中看一下这个的内容
    "insert into "+sheetname+" values ("+cell1+","+cell2+","+cell3+","+cell4+")"
      

  7.   

    The inferior stopped because it received a signal from the
    Operationg systemsignal name:SIGSEGV
    signal meaning:Segmention fault