1. qt中怎樣將表格中數據導出為excel文件
如果你在做一個報表類的程序,可能將內容導出為文件是一項必須的功能。之前使用MFC的時候我就寫過一個類,用於將grid中的數據導出為Excel文件。在使用了QtSql模塊後,我很容易的將這個類改寫應用在Qt程序中。類的名字叫「ExportExcelObject」。使用起來很簡單:
[cpp] view plain
// 1. declare an object
// – fileName Excel 文件路徑
// – sheetName Excel 工作表(sheet)名稱
// – tableView 需要導出的QTableView指針
ExportExcelObject obj(fileName, sheetName, tableView);
// 2. define fields (columns) to the Excel sheet file
// – 第1個參數是QTableView的列
// – 第2個參數是對應該列的Excel sheet中的列名
// – 第3個參數是該列的類型,可以使用char(x) (x最大255),int,datetime, 等
obj.addField(1, tr("name"), "char(60)");
obj.addField(2, tr("ID"), "int");
obj.addField(3, tr("time"), " datetime ");
// 3. 該類有特定的SIGNAL用於連接一個progress控制項,可以顯示導出進度
connect(&obj, SIGNAL(exportedRowCount(int)), progressBar, SLOT(setValue(int)));
// 4. do the work
int retVal = obj.export2Excel();
if(retVal > 0)
{//done
}
else
{//something wrong
}
那麼這個類是怎樣實現的呢?
1. 將Excel文件當成是一個資料庫
使用MS的ODBC或ADO都可以將Excel文件當做一個資料庫,那麼我們只需要使用下面這個DSN連接串去創建並連接至該Excel文件:
[cpp] view plain
QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls)};DSN=''; FIRSTROWHASNAMES=1;;CREATE_DB=/"%1/";DBQ=%2").
arg(excelFilePath).arg(excelFilePath);
2. 將Excel的工作表(sheet)當成是一個資料庫表
可以使用SQL語句「CREATE TABLE」 去創建一個工作表。
3. 向表中插入數據
使用SQL的「INSERT」語句插入數據。
4. Unicode支持
是的,列名和數據都支持Unicode。
2. qt鎿嶄綔excel鐢熸垚鏁g偣鍥劇殑闂棰橈紝婊℃剰鏈夊伩錛
鍦≦T涓鐩存帴璋冪敤EXCEL鐨凜OM緇勪歡鍙浠ュ疄鐜扮敓鎴愭暎鐐瑰浘錛屼絾鏄鍙鑳戒細閬囧埌涓浜涢棶棰橈紝姣斿傛棤娉曡幏寰楁彃鍏ョ殑鍥捐〃瀵硅薄銆俀Xlsx搴撳彲浠ュ疄鐜拌誨啓鍜岀敓鎴怷LSX鏍煎紡鐨凟xcel琛ㄦ牸錛屽寘鎷鎻掑叆鏁g偣鍥撅紝浣嗘槸鍙鑳藉瓨鍦ㄤ竴浜涢檺鍒跺拰涓嶈凍錛屾瘮濡傛棤娉曟彃鍏X杞村潗鏍囨暟鎹鍜屼笉鑳芥洿鏀笴hartStyle銆
鍙浠ヨ冭檻浣跨敤QT涓鏀鎸佺殑QChart緋誨垪綾誨簱錛岀敓鎴愭暎鐐瑰浘銆俀Chart鏄疩T5涓鐨勬柊鐗規э紝QChart緋誨垪綾誨簱灝佽呬簡鍩轟簬Qt Quick 2D娓叉煋寮曟搸鐨勫浘褰㈢粯鍒舵嗘灦錛屾彁渚涗簡鍙瑙嗗寲鍥捐〃鐨勫姛鑳斤紝鏀鎸佸氱嶅父瑙佺殑鍥捐〃綾誨瀷錛堝寘鎷鏁g偣鍥撅級錛屽苟鎻愪緵浜嗛珮搴﹀畾鍒跺寲鍥捐〃鐨勬帴鍙c傝繖鏍峰氨鍙浠ュ湪QT涓浣跨敤鍘熺敓鎺т歡瀹炵幇鍥捐〃鐨勫彲瑙嗗寲鍜岃嚜瀹氫箟銆
涓嬮潰鏄涓涓綆鍗曠殑浠g爜鐗囨碉紝婕旂ず濡備綍浣跨敤QChart鐢熸垚鏁g偣鍥撅細
```cpp
#include <QtCharts/QChartView>
#include <QtCharts/QScatterSeries>
//瀹氫箟涓涓鍑芥暟鐢ㄤ簬鐢熸垚鏁g偣鍥
void generateScatterChart()
{
//鍒涘緩鏁g偣鏁版嵁
QScatterSeries *series = new QScatterSeries();
series->setName("鏁g偣鍥");
//娣誨姞鏁版嵁鐐
series->append(1, 2);
series->append(3, 4);
series->append(5, 6);
series->append(7, 8);
//鍒涘緩X杞村拰Y杞
QValueAxis *xAxis = new QValueAxis();
xAxis->setLabelFormat("%d");
xAxis->setTitleText("X杞");
QValueAxis *yAxis = new QValueAxis();
yAxis->setLabelFormat("%.2f");
yAxis->setTitleText("Y杞");
//鍒涘緩鍥捐〃騫舵坊鍔犳暎鐐規暟鎹
QChart *chart = new QChart();
chart->addSeries(series);
//璁劇疆鍧愭爣杞
chart->setTitle("鏁g偣鍥");
chart->setAxisX(xAxis, series);
chart->setAxisY(yAxis, series);
//鏄劇ず鍥捐〃
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
chartView->show();
}
```
榪欐牱錛屽氨鍙浠ヤ嬌鐢≦Chart緋誨垪綾誨簱錛屽揩閫熸柟渚垮湴鐢熸垚鏁g偣鍥撅紝騫惰繘琛岄珮搴﹀畾鍒跺寲鐨勫浘琛ㄥ睍紺轟簡銆
3. QT excel創建的.xlsx文件打不開
Microsoft Excel 2010 單擊「文件」選項卡,然後單擊「選項」。 單擊「高級」,然後單擊「常規」區域內中的「忽略其他容使用動態數據交換 (DDE) 的應用程序」復選框,以取消選擇。 單擊「確定」。Microsoft Office Excel 2007</b> 單擊「Microsoft Office 按鈕」,然後單擊「Excel 選項」。 單擊「高級」,然後單擊「常規」區域中的「忽略其他使用動態數據交換 (DDE) 的應用程序」復選框,以取消選擇。 單擊「確定」。Microsoft Office Excel 2003 或 Excel 的早期版本</b> 在工具菜單上單擊選項。 單擊「常規」選項卡。 單擊「忽略其他使用動態數據交換 (DDE) 的應用程序」復選框,以取消選擇,然後單擊「確定」。執行此操作後,您應該可以通過在 Windows 資源管理器中雙擊工作簿來將其打開。
4. QT中有什麼控制項可以實現向excel的表格顯示
QTableWidget和/QStandardItemModel
//tableWidget例子
QTableWidget*tableWidget=newQTableWidget(this);
tableWidget->setRowCount(10);
setColumnCount(5);
//tableview的例子
QStandardItemModelmodel(4,4);
for(introw=0;row<4;++row){
for(intcolumn=0;column<4;++column){
QStandardItem*item=newQStandardItem(QString("row%0,column%1").arg(row).arg(column));
model.setItem(row,column,item);
}
}
QTableView*tableView=newQTableView(this);
tableView->setModel(&model);
5. Qt實現一個表格,具有excel功能
Qt實現一個表格,具有excel功能?都有吧 你可以多試試幾個表格
6. 如何使用Qt來操作Excel
Qt操作Excel,無論後綴是xls還是xlsx都可以。
1.如下,是下載的一個Excel VBA參考手冊,內容不算太全!