DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAxObjectExcelSheetWrapper.h
1#ifndef DAAXOBJECTEXCELSHEETWRAPPER_H
2#define DAAXOBJECTEXCELSHEETWRAPPER_H
3#include "DAAxOfficeWrapperGlobal.h"
4#include <QAxObject>
5#include <QVariant>
6#include "DATable.hpp"
7namespace DA
8{
9
13class DAAXOFFICEWRAPPER_API DAAxObjectExcelSheetWrapper
14{
15public:
16 DAAxObjectExcelSheetWrapper(QAxObject* sheetObj = nullptr);
18 // 判断是否有效
19 bool isNull() const;
20 // 快速写,默认从A1开始写
21 bool writeTable(const DATable< QVariant >& table, int startRow = 1, int startColumn = 1);
22 // 批量读写
23 DATable< QVariant > readTable();
24 // 获取sheet的所有数据
25 QVariant getAllData();
26 // 获取内部管理的对象
27 QAxObject* object() const;
28 // 自动删除管理
29 bool isAutoDelete() const;
30 void setAutoDelete(bool v);
31 // 获取范围
32 QAxObject* range(int startRow, int startColumn, int endRow, int endColumn);
33 // 激活
34 void setActive();
35 // 获取sheet的名字
36 QString getName();
37 void setName(const QString& n);
38 // 获取sheet的索引
39 int getIndex();
40
41public:
42 // 把序号转换为A~Z表示的二十六个字母
43 static QString indexToAlphbat(int n);
44 // table转换为QVariant
45 static QVariant tableToVaraint(const DATable< QVariant >& table);
46
47private:
48 // 生成一个范围值,如makeRange(1,1,27,27)=A1:AA27
49 QString makeRangeString(int startRow, int startColumn, int endRow, int endColumn);
50
51private:
52 QAxObject* mAxSheet { nullptr };
53 bool mAutoDelete { false };
54};
55
56}
57#endif // DAAXOBJECTEXCELSHEETWRAPPER_H
针对excelSheet的操作封装,不对QAxObject的生命周期进行管理,确保此类不要单独保留,否则sheet析构后会引起异常
Definition DAAxObjectExcelSheetWrapper.h:14
支持稀疏存储和各种算法的表格类
Definition DATable.hpp:26
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44