113 lines
3.5 KiB
C++
113 lines
3.5 KiB
C++
/********************************************************************
|
||
@date: 2017-11-20
|
||
@author: gongwei@vishee.com
|
||
@edit_by:
|
||
@brief: 通用的word操作类,报告创建一个word,保存,打印,表格操作,字体操作
|
||
注意:表格中的索引均是从1开始
|
||
*********************************************************************/
|
||
|
||
#ifndef WORDOPERATE_H
|
||
#define WORDOPERATE_H
|
||
|
||
#include <QObject>
|
||
#include <QObject>
|
||
#include <ActiveQt/QAxWidget>
|
||
#include <ActiveQt/QAxObject>
|
||
#include <QTextBlockFormat>
|
||
#include <qtextedit.h>
|
||
class WordOperate : public QObject
|
||
{
|
||
Q_OBJECT
|
||
|
||
public:
|
||
enum AlignmentType{
|
||
AlignmentTypeLeft,
|
||
AlignmentTypeCenter,
|
||
AlignmentTypeRight
|
||
|
||
};
|
||
|
||
enum SpaceType//
|
||
{
|
||
Space1,
|
||
Space15,
|
||
Space2,
|
||
SpaceAtLeast,
|
||
SpaceExactly,
|
||
SpaceMuti
|
||
};
|
||
|
||
explicit WordOperate(QObject *parent = 0);
|
||
WordOperate(const QString& strFile, QObject *parent = 0);
|
||
~WordOperate();
|
||
|
||
bool open(bool bVisable = false);
|
||
bool open(const QString& strFile, bool bVisable = true);
|
||
bool close();
|
||
bool isOpen();
|
||
void save();
|
||
bool saveAs(const QString& strSaveFile);
|
||
// 创建表格
|
||
void intsertTable(int row, int column);
|
||
// 设置表格内容
|
||
QAxObject* setCellString(int nTable, int row, int column, const QString& text);
|
||
// 合并单元格
|
||
void MergeCell(int nTable,int nStartRow,int nStartCol,int nEndRow,int nEndCol,bool bVerticalCenter = false );
|
||
//拆分单元格
|
||
void SplitCell(int nTable,int nStartRow,int nStartCol,int nRow,int nCol);
|
||
// 在表格中插入图片
|
||
void insertCellPic(int nTable, int row,int column,const QString& picPath);
|
||
//光标跳转,类似于表格中的tab
|
||
void moveRight();
|
||
void SetMarkPic(QString sLabel, QString sFile);
|
||
// 设置文字
|
||
void SetFont(QString strFamily,int nSize,bool bBold = false,bool bItalic = false,bool bUnderLine = false);
|
||
// 设置表格文字字体
|
||
void SetTableFont(QAxObject* cell,QString strFamily,int nSize,bool bBold = false,bool bItalic = false);
|
||
// 设置表格文字字体
|
||
void SetTableFont(int nTable,int row,int column,QString strFamily,int nSize,bool bBold = false,bool bItalic = false,bool bUnderLine=false);
|
||
// 设置对其方式
|
||
void SetAlign(AlignmentType nAlign);
|
||
// 打印当期前document
|
||
void Print();
|
||
void Print(int nPageFrom,int nPageTo);
|
||
//光标移到末尾
|
||
void moveForEnd();
|
||
//回车
|
||
void insertEnter();
|
||
//插入图片
|
||
void InsertPicture(QString picturePath);
|
||
//插入文字
|
||
void SetText(QString strText);
|
||
//获取页边距
|
||
void GetPageMargin(double &dbLeft,double &dbTop,double &dbRight,double &dbBottom);
|
||
//设置页边距
|
||
void SetPageMargin(double dbLeft,double dbTop,double dbRight,double dbBottom);
|
||
//设置文档可见
|
||
void SetVisible(bool bVisable = true);
|
||
//设置表格行高
|
||
bool SetTableRowHeight(int nTable,int row,int height);
|
||
//设置段落行间距
|
||
void SetParagraphSpacing(SpaceType type,int space=0);
|
||
//设置列宽
|
||
void SetColumnWidth(int nTable, int column, int width);
|
||
//隐藏表格边框
|
||
void HideBorder(int nTable,int row,int column,int item);
|
||
//增加table行
|
||
void AddTableRow(int tableIndex ,int nRow,int rowCount);
|
||
public:
|
||
QAxObject *m_wordDocuments;
|
||
QAxObject *m_wordWidget;
|
||
QAxObject *m_selection;
|
||
private:
|
||
bool m_bOpened;
|
||
QString m_strFilePath;
|
||
|
||
|
||
signals:
|
||
|
||
public slots:
|
||
};
|
||
|
||
#endif // WORDOPERATE_H
|