Qt下QAxObject+Excel的例子

参考于:http://blog.sina.com.cn/s/blog_a6fb6cc90101gv2p.html
自己总结写的个简单的Excel类
有Excel的基本操作,如打开、创建、写、读、修改字体、合并方框、获取行、列等操作。

使用注意事项:每次获取了工作表数量之后,需要重新选中工作表!
关于怎么判断Excel是否被打开;原本是判断打开之后有没有生成对应的~$*.xlsx。结果发现没有生成对应文件,就只能用变量来判断文件是否被打开了。
若需要在线程中使用,需要在run中添加
HRESULT r = OleInitialize(0);
头文件为:#include <ole2.h>

下面是自己写的.h 文件
具体文件内容见:https://download.csdn.net/download/qq_42401265/12108692

#ifndef EXCEL_FILE_H
#define EXCEL_FILE_H
#include <QAxObject>
#include <QFileInfo>
#include <QDir>
#include <QColor>
#include <QString>

class Excel_File
{
public:
    Excel_File();
    Excel_File(QString filepath,QString filename);
    ~Excel_File();
    bool open();
    //bool isopen();
    bool getopenflag();
    void setFileName(QString name);//设置文件的名字
    void setFilePath(QString name);//设置路径
    void save();
    void quit();
    void selectTable(int num);//选中那个表单
    int getTableNum();//获取工作表的数量
    QString getTableName();//获取当前工作表的名字
    void setValues(QList<QList<QVariant>> &data,QString num);//批量写值  num设置如   "A1:B8"
    void setValue(int row,int col,QString value);    //写值
    void getValues(QList<QList<QVariant>> &values,QString num);//批量读值  num设置如   "A1:B8"
    QString getValue(int row,int col);//获取选择的内容
    QVariant getHeadLine();//获取标题
    void deleteTableNum(int num);//删除指定的工作表
    int cols();//列数
    int rows();//行数
    int getStartCols();//获取起始列数
    int getStartRows();//获取起始行数
    void setFontColor(int row,int col,QColor color);    //设置字体颜色
    void setCellH(int row,int col,int H);//设置行高
    void setCellW(int row,int col,int W);//设置行宽
    void setJustifyLeft(int row,int col);//设置左对齐
    void setJustifyRight(int row,int col);//设置右对齐
    void setJustifypUp(int row,int col);//设置上对齐
    void setJustifyDown(int row,int col);//设置下对齐
    void setJustifyCentre(int row,int col);//设置中心对齐
    void setWordWrap(int row,int col);//设置自动换行
    void clearCell(int row,int col);//清空指定单元格类容
    void setBackColor(int row,int col,QColor color);//设置背景色
    void setOutlineColor(int row,int col,QColor color);//设置边框颜色
    void setFontWeight(int row,int col);//设置字体加粗
    void setFontSize(int row,int col,int size);//设置字体大小
    void setFontItalic(int row,int col);//设置斜体
    void setFontUnderline(int row,int col);//设置下划线
    void setMergedCell(QString num);//设置合并单元格如A1:A3
    void setSplitCells(QString num);//设置拆分单元格如A1:A3

private:
    QAxObject *excel;
    QAxObject *workbooks;
    QAxObject *workbook;
    QAxObject *work_book;
    QAxObject *worksheet;
    QAxObject *cell;
    QAxObject *font;
    QString flie_path="C:/数据"; //文件路径
    QString flie_name="1.xlsx"; //文件名字
    bool isopen=false;
    bool isDirExist(QString fullPath);//判断文件夹是否存在,不存在则创建,创建成功反正真
    bool isFileExist(QString fullFileName);//判断文件是否存在 存在返回真,不存在则创建

};

#endif // EXCEL_FILE_H

猜你喜欢

转载自blog.csdn.net/qq_42401265/article/details/104014177