Excel 使用ODBC直接访问

来源:互联网 发布:金三立网络硬盘录像机 编辑:程序博客网 时间:2024/06/10 09:50

原来Excel 可以使用ODBC直接访问啊,一直以来都是一格一格读取,比较烦,这次又学习了!!
此处记录ODBC连接Excel的DSN字符串:
“DRIVER={Microsoft Excel Driver (*.xls)};FIRSTROWHASNAMES=1;READONLY=FALSE;DBQ=%1”
—%1 为要连接的Excel文件。
—READONLY=FALSE; 如果没有这段,excel默认是按照只读打开的,只能select 操作
—FIRSTROWHASNAMES=1; 这段表明excel文件的第一行是列名。

Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);    QSqlDatabase excel = QSqlDatabase::addDatabase("QODBC");    QString ExcelFileName = QFileDialog::getOpenFileName(this,tr("选择要打开的文件"),".",tr("Excel File(*.xls)"));    if(ExcelFileName.isEmpty())        return;    QString dsn =QString("DRIVER={Microsoft Excel Driver (*.xls)};FIRSTROWHASNAMES=1;READONLY=FALSE;DBQ=%1").arg(ExcelFileName);    excel.setDatabaseName(dsn);    if(!excel.open())    {        qDebug() <<"open database file "<<ExcelFileName<<"error!";        return;    }    QSqlQuery query = QSqlQuery(excel);    query.exec("select * from [people$]");    //读取记录    qDebug()<<query.record().count();    query.next();    //QTextCodec *codec = QTextCodec::codecForName("UTF-8");    qDebug()<<query.value("name").toString();    ui->lineEdit->setText(query.value("name").toString());    //插入记录    if(!query.exec("insert into [people$](id,name,old)  values(5,'nowhaha',43)"))    {        //qDebug()<<   query.lastError().text();        QMessageBox::information(this,"info", query.lastError().text());    }}
0 0
原创粉丝点击