Qt将excel导入到QTableView
来源:互联网 发布:mac版cad2014破解文件 编辑:程序博客网 时间:2024/04/28 13:14
if(!db.isValid())
{
qDebug() << "export2Excel failed: QODBC not supported.";
return ;
}
QString xlsFile = "D:/test.xls";
QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls)};Readonly=0;DriverId=790;DBQ=%1").arg(xlsFile);
db.setDatabaseName(dsn);
if(!db.open())
{
//错误处理
return;
}
QString queryystr = "select * from [sheet1$]";
SqlTableModel*excelTableModel = new SqlTableModel(this, db);
QString tableName = "[sheet1$]";
excelTableModel->setTable(tableName);
QSqlQuery querry(queryystr, db);
excelTableModel->setQuery(querry);
excelTableModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
excelTableModel->setSort(0, Qt::AscendingOrder);
bool ok = excelTableModel->select(); //选取整个表的所有行
ui.tableView_2->setModel(excelTableModel);
int i = 0;
foreach(QString heardName, heardList)
{
excelTableModel->setHeaderData(i, Qt::Horizontal, heardName);
i++;
}
int sqlTableCount = m_sqlTableModel->rowCount();
int excelTableCount = excelTableModel->rowCount();
QList<QSqlRecord> tmprecord;
for (int row = 0; row < excelTableCount; row++ )
{
QSqlRecord excelRecord = excelTableModel->record(row);
tmprecord << excelRecord;
}
db.close();
bool open = m_dba.open();
foreach(QSqlRecord record, tmprecord)
{
bool ok = m_sqlTableModel->insertRow(sqlTableCount); //添加一行
for (int k = 0; k<5;k++)
{
if (k == 0)
{
bool suc= m_sqlTableModel->setData(m_sqlTableModel->index(sqlTableCount,k),record.value(k), Qt::CheckStateRole);
}
bool suc= m_sqlTableModel->setData(m_sqlTableModel->index(sqlTableCount,k),record.value(k), Qt::EditRole);
}
sqlTableCount++;
}
AlterButtonClicked();
initWindow(TEACHERMANAGECLICKED);
AlterButtonClicked()
{
m_sqlTableModel->database().transaction(); //开始事务操作
if (m_sqlTableModel->submitAll())
{
m_sqlTableModel->database().commit(); //提交
}
else
{
m_sqlTableModel->database().rollback(); //回滚
QMessageBox::warning(this, tr("Model"), tr("数据库错误: %1").arg(m_sqlTableModel->lastError().text()));
}
}
initWindow(int index)
{
int i = 0;
heardList.clear();
if (index == STUDENTMANAGECLICKED)
{
heardList << "选择" << "编号" << "姓名" << "性别" << "班级" << "备注";
m_sqlTableModel->setTable("\"StudentInfo\"");
m_sqlTableModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
m_sqlTableModel->setSort(0, Qt::AscendingOrder);
m_sqlTableModel->select(); //选取整个表的所有行
ui.tableView_2->setModel(m_sqlTableModel);
foreach(QString heardName, heardList)
{
m_sqlTableModel->setHeaderData(i, Qt::Horizontal, heardName);
i++;
}
}
else if (index == TEACHERMANAGECLICKED)
{
heardList << "选择" << "用户名" << "姓名" << "性别" << "角色" << "备注";
m_sqlTableModel->setTable("\"TeacherInfo\"");
m_sqlTableModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
m_sqlTableModel->setSort(0, Qt::AscendingOrder);
bool ok1 = m_sqlTableModel->select(); //选取整个表的所有行
ui.tableView_2->setModel(m_sqlTableModel);
foreach(QString heardName, heardList)
{
m_sqlTableModel->setHeaderData(i, Qt::Horizontal, heardName);
i++;
}
}
//m_sqlTableModel->insertColumn(0);
ui.tableView_2->resizeColumnsToContents();
}
- Qt将excel导入到QTableView
- qt QTableWidget&&QTableView 导出数据到excel
- qt QTableWidget&&QTableView 导出数据到excel
- qt QTableWidget&&QTableView 导出数据到excel
- 将Excel导入到mysql
- 将gridview 导入到excel
- 将excel 导入到gridview
- 将Excel导入到mysql
- 将Excel导入到Access
- 将Excel导入到SQLServer2005
- 将Excel导入到数据库
- 将excel导入到数据库
- 将Excel导入到数据库
- 将EXCEL导入到数据库
- 将datagrid数据导入到excel(转载)
- 如何将数据导入到excel里面
- 将GridView内数据导入到Excel
- 将EXCEL 数据导入到 DataGrid中
- 如何限制textBox输入字符长度?MaxLength属性一下搞定!
- Oracle set unused的用法
- Android 软键盘遮挡三种解决方案
- IE下载docx(xlsx,pptx)文件时,会自动将扩展名变为zip
- PCB任意角度和距离放置元器件
- Qt将excel导入到QTableView
- poj1204 字典树+DFS
- R语言面向对象指南
- Codeforces Round #Pi (Div. 2)
- android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】
- map unordered_map hash_map比一比
- LayoutInflater原理分析,View工作原理(一)
- ShowPopupMenu显示自己创建的右键菜单 不显示
- 学习java前一些概念的说明