首先在 .pro文件中增加一个配置文件,如下:
1 CONFIG += qaxcontainer #导出excel
第二步,在实现导出功能方法的 .cpp 文件中引入如下类:
1 #include <QTableWidget>
2 #include <QFileDialog>
3 #include <QDesktopServices>
4 #include <QMessageBox>
5 #include <QAxObject>
第三步,是真正的实现方法,以上所做只是为这个方法做出的铺垫,具体如下:
1 //第一个参数是页面上的表格,第二个是导出文件的表头数据
2 void FaJianDialog::Table2ExcelByHtml(QTableWidget *table,QString title)
3 {
4 QString fileName = QFileDialog::getSaveFileName(table, "保存",QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation),"Excel 文件(*.xls *.xlsx)");
5 if (fileName!="")
6 {
7 QAxObject *excel = new QAxObject;
8 if (excel->setControl("Excel.Application")) //连接Excel控件
9 {
10 excel->dynamicCall("SetVisible (bool Visible)","false");//不显示窗体
11 excel->setProperty("DisplayAlerts", false);//不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示
12 QAxObject *workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合
13 workbooks->dynamicCall("Add");//新建一个工作簿
14 QAxObject *workbook = excel->querySubObject("ActiveWorkBook");//获取当前工作簿
15