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参考手册,内容不算太全!