1. 程式人生 > >Qt將excel匯入到QTableView

Qt將excel匯入到QTableView

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
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();


}

相關推薦

Qtexcel匯入QTableView

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");if(!db.isValid()){qDebug() << "export2Excel failed: QODBC not supported.";retu

excel匯入mysql(使用navicat) 填坑

   如果你想使用navicat的匯入功能,畢竟在navicat中不好編輯內容,在excel可以很好地新增,所以一般都是考慮excel弄好,然後直接匯入到資料庫中,這個時候就有疑問了,應該什麼樣的格式才行呢,我的推薦是

通用的Excel匯入資料集的方法

開發中經常有需要將Excel匯入資料集的需要,但每張Excel的欄位都會不同,常規的做法有兩種: 一、針對每一張Excel的欄位與資料集欄位位置在程式中寫好,一一對應匯入 二、針對每一張Excel的欄位與資料集欄位配置好應用引數 這兩種方法都比較麻煩,很不靈活,所以我寫了一

使用vbexcel匯入PowerDesigner,生成表結構

'****************************************************************************** Option ExplicitDim mdl ' the current modelSet mdl = ActiveModelIf (mdl Is

Excel匯入DataSet

using System.Data;using System.Data.OleDb;using System.Data.Odbc; public DataSet GetDataSetFromExcel(string filePath)  {   string strConn

excel資料匯入到mysql資料庫

框架用的是thinkphp3.2框架 //將Excel匯入到資料庫的思想是:先將Excel中的資料轉為php陣列,然後執行addAll操作 public function upload() { ini_set('memory_limit', '1024M'); if (!empty(

java後端伺服器讀取excel資料匯入資料庫

使用的是easypoi,官網文件:http://easypoi.mydoc.io/ 1 /** 2 * 匯入Excel檔案 3 */ 4 @PostMapping("/importTeacher") 5 @ResponseBody 6 publi

利用PythonExcel表中的資料匯入Mysql資料庫

 python操作Excel 需要匯入xlrd包,可以通過pip install xlrd 一鍵安裝。 #coding=utf-8 ''' python 將指定目錄下的excel檔案匯入到資料庫中 ''' # 引入資料庫包 import pymysql # 引入操作excel包

PHPExcelexcel表的資料匯入資料庫

一:話不多說,上乾貨     1.首先,需要建立個數據庫 product     資料庫程式碼參考: /* Navicat MySQL Data Transfer Source Server : TP-jifen-demo

怎麼通過poiExcel中的科學計數法正確匯入

最近匯入excel表格的時候,因為excel表格中存在科學計數法,在使用poi匯入資料庫的時候,發現部分資料出現異常, 例如:3010102010100000000 在excel中表示為 3.0101E+18 ,選中在excel展示出來的資料是正確的,但是通過poi匯入資料 庫

JavaExcel表格中資料匯入至資料庫中的表中

        上一節介紹了Java將資料庫表中資料匯出至Excel表格,那麼本節來介紹它的逆過程,也就是將Excel表格中的資料逐行匯入資料庫中的表中,依然需要使用Apache的POI,上一節已經說過也附了這個jar包的下載地址,這一節就不過多的說,直接講如

如何 Excel 檔案匯入到 Navicat for MySQL 資料庫

  Navicat for MySQL 是一套最為專業的管理和開發 MySQL 資料庫工具,匯入資料是進行管理的第一步,那麼如何將 Excel 檔案資料匯入到 Navicat for MySQL 資料庫呢? 將 Excel 檔案匯入到 Navicat for MySQL

excel檔案中的資料匯入到資料庫中的步驟

//1,在控制請中通過MultipartHttpServlerRequest multipartFiles獲取上傳的檔案 multipartFile file = multipartFiles.getFiles("file");//引數file是前端input上傳檔案標籤的name屬性;

Excel檔案匯入MySQL資料庫的方法

將Excel檔案匯入MySQL資料庫的方法 1、簡介 本部落格給大家分享一個實用的小技能,我們在使用資料庫時常常需要將所需的Excel資料新增進去,如果按照傳統的方法將會費時費力,所以給大家分享匯入Excel資料的技能。 2、實際操作 1)首先需要下載一個數據庫管理工具

excel檔案匯入mysql資料庫

在部落格上找了好多,好多坑,搞了兩個小時終於好了!分享一下過程,親測是成功的!至於你不成功---哈哈 使用的工具 wps 操作 excel Sublime Text 操作CSV文件 Navicat 操作資料庫工具   首先這是給我的檔案 百

Revit二次開發_資料匯入Excel

有時需要將Revit模型的一些資訊提取到Excel中進行處理或者是作為記錄進行儲存,但也許是因為Revit的資料結構相對複雜,並不支援直接將資料匯出Excel,所以平時通過二次開發將資訊輸出到Excel中。 常使用的輸出方法有三個,分別是com元件;NPOI庫;Epplus

解決Excel匯入到SQL Server資料庫時出現Text was truncated or one or more characters had no match in the target code錯誤

編寫python爬蟲程式可以在電商、旅遊等網站上爬取相關評論資料,這些資料可以用於詞雲製作、感情詞分析、提取關鍵詞等,也可以將爬取下來的資料以自己的方式進行展示。評論資料爬取下來後,就要考慮怎樣入庫,可以在爬蟲程式中編寫程式碼直接入庫,也可以將爬取到的資料存到Excel表格中,再將Excel表格匯入到資料庫中

自制工具excel檔案批量匯入到mongodb

使用方法 下載此工具(度盤 密碼: sbv6),這是一個exe檔案,雙擊可直接執行 將這個工具放到你要處理的表格所在的目錄,比如上圖中有一個年級表的示例檔案 確保已啟動mongodb服務 雙擊指令碼工具,啟動控制檯,會提示你輸入要連線/建立的資料庫名以及表格所

用javaexcel表單匯入資料庫表單----新手入門

構建專案思路 1、利用Excel第三方工具,將Excel檔案讀取到記憶體中。使用最簡單,方便的工具是apache的poi工具包,自己網上下載 http://poi.apache.org/ ,使用方法網上一搜一大片。 2、如果是對於特別大的excel(大於20M的

C# Excel中的資料匯入到資料庫SQLS

解決方式: 1.現將Excel中的資料存放在DataTable中 程式碼參考部落格:C#讀取Excel中的內容,並將內容存放在二維陣列中” 2. 將DataTable中的資料匯入到SqlServer中 具體程式碼如下: public static void D