如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Qt中将QTableView中的数据导出为Excel文件收藏如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能。之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件。在使用了QtSql模块后,我很容易的将这个类改写应用在Qt程序中。类的名字叫“ExportExcelObject”。使用起来很简单:viewplaincopytoclipboardprint?01.//1.declareanobject02.03.//–fileNameExcel文件路径04.05.//–sheetNameExcel工作表(sheet)名称06.07.//–tableView需要导出的QTableView指针08.09.ExportExcelObjectobj(fileName,sheetName,tableView);10.11.12.13.//2.definefields(columns)totheExcelsheetfile14.15.//–第1个参数是QTableView的列16.17.//–第2个参数是对应该列的Excelsheet中的列名18.19.//–第3个参数是该列的类型,可以使用char(x)(x最大255),int,datetime,等20.21.obj.addField(1,tr("name"),"char(60)");22.23.obj.addField(2,tr("ID"),"int");24.25.obj.addField(3,tr("time"),"datetime");26.27.28.29.//3.该类有特定的SIGNAL用于连接一个progress控件,可以显示导出进度30.31.connect(&obj,SIGNAL(exportedRowCount(int)),progressBar,SLOT(setValue(int)));32.33.34.35.//4.dothework36.37.intretVal=obj.export2Excel();38.39.if(retVal>0)40.41.{//done42.43.}44.45.else46.47.{//somethingwrong48.49.}//1.declareanobject//–fileNameExcel文件路径//–sheetNameExcel工作表(sheet)名称//–tableView需要导出的QTableView指针ExportExcelObjectobj(fileName,sheetName,tableView);//2.definefields(columns)totheExcelsheetfile//–第1个参数是QTableView的列//–第2个参数是对应该列的Excelsheet中的列名//–第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.dotheworkintretVal=obj.export2Excel();if(retVal>0){//done}else{//somethingwrong}那么这个类是怎样实现的呢?1.将Excel文件当成是一个数据库使用MS的ODBC或ADO都可以将Excel文件当做一个数据库,那么我们只需要使用下面这个DSN连接串去创建并连接至该Excel文件:viewplaincopytoclipboardprint?01.QStringdsn=QString("DRIVER={MicrosoftExcelDriver(*.xls)};DSN='';FIRSTROWHASNAMES=1;;CREATE_DB=\"%1\";DBQ=%2").02.03.arg(excelFilePath).arg(excelFilePath);QStringdsn=QString("DRIVER={MicrosoftExcelDriver(*.xl