DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAxObjectExcelWrapper.h
1#ifndef DAAXOBJECTEXCELWRAPPER_H
2#define DAAXOBJECTEXCELWRAPPER_H
3#include <QObject>
4#include <QAxObject>
5#include <QVariant>
6#include <optional>
7#include "DAAxOfficeWrapperGlobal.h"
8#include "DAAxObjectExcelSheetWrapper.h"
9#include "DATable.hpp"
10namespace DA
11{
27class DAAXOFFICEWRAPPER_API DAAxObjectExcelWrapper : public QObject
28{
29 Q_OBJECT
30 DA_DECLARE_PRIVATE(DAAxObjectExcelWrapper)
31public:
32 DAAxObjectExcelWrapper(QObject* par = nullptr);
34 // 判断是否有效
35 bool isValid() const;
36 // 窗体是否显示
37 void setWindowVisible(bool on);
38 // 是否显示警告
39 void setDisplayAlerts(bool on);
40 // 打开excel
41 bool open(const QString& filename, bool visible = false, bool displayAlerts = false);
42 // 创建excel
43 bool create(const QString& filename, bool visible = false, bool displayAlerts = false);
44 // 保存
45 bool save();
46 // 保存
47 bool saveAs(const QString& filename);
48 // 获取所有sheets的名称
49 QStringList getSheetsName() const;
50 // 获取sheet的数量
51 int getSheetsCount() const;
52 // 设置当前sheet
53 bool setCurrentSheet(int index);
54 bool setCurrentSheet(const QString& name);
55 // 通过sheet名字查找sheet索引
56 int indexOfSheetName(const QString& name) const;
57 // 获取当前sheet的名字
58 QString getActiveSheetName() const;
59 // 读取所有数据(0-base)
60 DATable< QVariant > readTable(int sheetIndex) const;
61 DATable< QVariant > readCurrentTable() const;
62 // 获取当前的sheet(0-base)
63 DAAxObjectExcelSheetWrapper getActiveSheet() const;
64 DAAxObjectExcelSheetWrapper getSheet(int sheetIndex) const;
65 DAAxObjectExcelSheetWrapper getFirstSheet() const;
66 DAAxObjectExcelSheetWrapper getLastSheet() const;
67 // 关闭
68 void close();
69 // 添加一个sheet
70 DAAxObjectExcelSheetWrapper addSheet(const QString& name);
71
72public:
73 // 读取excel第sheetIndex的sheet的数据
74 static DATable< QVariant > readExcelSheet(const QString& filename, int sheetIndex = 0, QString* errString = nullptr);
75 // 把table写入excel中
76 static bool writeExcel(const QString& filename,
77 const QString& sheetName,
78 const DATable< QVariant >& table,
79 bool appendLast = false,
80 QString* errString = nullptr);
81};
82}
83
84#endif // DAAXOBJECTEXCELWRAPPER_H
针对excelSheet的操作封装,不对QAxObject的生命周期进行管理,确保此类不要单独保留,否则sheet析构后会引起异常
Definition DAAxObjectExcelSheetWrapper.h:14
excel操作封装
Definition DAAxObjectExcelWrapper.h:28
支持稀疏存储和各种算法的表格类
Definition DATable.hpp:26
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44