Qt导出Excel封装到一个类中

//基于http://blog.csdn.net/w_ww_w/article/details/9167573的主体

//头文件

#ifndef EXPORTEXCEL_H
#define EXPORTEXCEL_H
#include<QAxObject>
#include<QTableView>
#include<QString>
#include<QFile>
#include<QDir>
class ExportExcel
{
public:
    ExportExcel(const QString &Path,const QString &Sheetname);
    void setCellValue(int row, int column, const QString &value);
    void saveExcel();
    ~ExportExcel();
private:
    QAxObject *pApplication;
    QAxObject *pWorkBooks;
    QAxObject *pWorkBook;
    QAxObject *pSheets;
    QAxObject *pSheet;
    QAxObject *pRange;
    QString sheetname;
    QString path;
};

#endif // EXPORTEXCEL_H


//定义



#include "Exportexcel.h"

ExportExcel::ExportExcel(const QString &Path,const QString &Sheetname)
{
    path=Path;
    sheetname=Sheetname;
    pApplication = new QAxObject();
    pApplication->setControl("Excel.Application");//连接Excel控件
    pApplication->dynamicCall("SetVisible(bool)", false);//false不显示窗体
    pApplication->setProperty("DisplayAlerts", false);//不显示任何警告信息。
    pWorkBooks = pApplication->querySubObject("Workbooks");
    QFile file(path);
    if (file.exists())
    {
        pWorkBook = pWorkBooks->querySubObject("Open(const QString &)", path);
    }
    else
    {
        pWorkBooks->dynamicCall("Add");
        pWorkBook = pApplication->querySubObject("ActiveWorkBook");
    }
    pSheets = pWorkBook->querySubObject("Sheets");
    pSheet = pSheets->querySubObject("Item(int)", 1);
    pRange=NULL;
    pSheet->dynamicCall("Move(QVariant)", pSheet->asVariant());
    pSheet->setProperty("Name", sheetname);
}
//向Excel单元格中写入数据
void ExportExcel::setCellValue(int row, int column, const QString &value)
{
     pRange = pSheet->querySubObject("Cells(int,int)", row, column);
     pRange->dynamicCall("Value", value);
}


//保存Excel
void ExportExcel::saveExcel()
{
    pWorkBook->dynamicCall("SaveAs(const QString &)",
                           QDir::toNativeSeparators(path));
    pWorkBook->dynamicCall("Close()");
    pApplication->dynamicCall("Quit()");
}
ExportExcel::~ExportExcel()
{
    delete pApplication;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值