QWord.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef QWORD_H
  2. #define QWORD_H
  3. #include <QtGlobal>
  4. #ifdef Q_OS_WIN
  5. # define _WIN32_DCOM
  6. # include <QMainWindow>
  7. # include "qmainwindow.h"
  8. # include <QString>
  9. # include <QVariant>
  10. # include <ActiveQt/QAxObject>
  11. # include <ActiveQt/QAxWidget>
  12. # include "objbase.h"
  13. //#include "GlobalAppData.h"
  14. class QWord : public QObject
  15. {
  16. Q_OBJECT
  17. public:
  18. QWord(QObject *parent = 0);
  19. ~QWord();
  20. public:
  21. QAxObject *getDocuments() { return m_documents; }
  22. QAxObject *getDocument() { return m_document; }
  23. QAxObject *getWordApp() { return m_word; }
  24. QString getFilePath() { return m_strFilePath; }
  25. public:
  26. /**************************************************************************/
  27. /* 文件 操作 */
  28. /**************************************************************************/
  29. void save(); //保存操作内容
  30. void close(); //关闭 退出 析构时候也会自动调用一次
  31. void saveAs(); //新建word另存为
  32. bool createWord(QString reportname); //创建一个新的word文档
  33. void openWord(); //打开一个现有的word文档
  34. bool createNewWord(const QString &filePath); //创建一个新的word文档
  35. void setTableAutoFitBehavior(int flag); //表格自动拉伸列: 0 固定 1根据内容调整 2 根据窗口调整
  36. void setPageOrientation(int flag); //设置页面0为纵向wdOrientPortrait 1为横向wdOrientLandscape
  37. void setWordPageView(
  38. int flag); //设置页面视图,是web视图wdWebView 6还是页面视图wdPrintView 3 或者阅读视图wdReadingView 7
  39. void setFontSize(int fontsize); //设置字体大小
  40. void setFontName(const QString &fontName); //设置字体 比如 “宋体”
  41. void setFontBold(bool flag); //字体加粗
  42. void setParagraphAlignment(int flag); //设置选中位置文字居左 0 ,居中 1 ,居右 2
  43. void setRowAlignment(int tableIndex, int row, int flag);
  44. //同时设置列宽和列高可以固定图片的大小
  45. void setColumnWidth(int column, int width); //设置列宽
  46. void setColumnHeight(int column, int height); //设置列高
  47. void setRowHeight(int nTable, int Row, int height);
  48. void setCellString(int row, int column, const QString &text);
  49. void setCellFontBold(int row, int column, bool isBold); //设置内容粗体 isBold控制是否粗体
  50. void setCellFontSize(int row, int column, int size); //设置文字大小
  51. void setOptionCheckSpell(bool flags); //设置审阅的拼写检查 true开启检查 false 取消检查
  52. QString GetText(); //获取内容
  53. void getUsedRange(int *topLeftRow, int *topLeftColumn, int *bottomRightRow, int *bottomRightColumn);
  54. void setSelectionRange(int start, int end); //"SetRange(1, 9)"第1个字符后开始,到第9个字符结束范围
  55. QVariant getCellValue(int row, int column); //获取单元格内容
  56. int getTableCount(); //获取word中表格总数
  57. QString getStrErrorInfo()
  58. {
  59. return m_strError;
  60. } //获取代码中出现的错误信息可以用QMessageBox::information打印 在cpp不用QMessageBox 是怕你们在线程中调导出报表
  61. void deleteSelectColumn(int column); //删除指定的列
  62. void moveForEnd(); //移动选定对象到文档末尾
  63. void insertCellPic(int row, int column, const QString &picPath); //单元格插入图片
  64. void intsertTable(int row, int column); //插入一个几行几列表格
  65. void insertMoveDown(); //插入回车
  66. void insertText(const QString &text); //插入文字
  67. void insertTable(int tableIndex, int row, int column);
  68. //插入巡检单位 巡检计划 巡检时间 巡 检 人 顺序传参
  69. // void insertTitle(const QString& str1,const QString& str2,const QString& str3,const QString& str4);
  70. void MergeCells(int tableIndex, int nStartRow, int nStartCol, int nEndRow, int nEndCol); //合并单元格
  71. bool open(const QString &strFilePath, bool bVisable);
  72. bool openword(bool bVisable);
  73. bool isOpen();
  74. void setColumnWidth(int nTable, int column, int width);
  75. void setCellString(int nTable, int row, int column, const QString &text);
  76. void insertCellPic(int nTable, int row, int column, const QString &picPath);
  77. void setCellFontBold(int nTable, int row, int column, bool isBold);
  78. void setCellFontSize(int nTable, int row, int column, int size);
  79. // void addTableRow(int nTable ,int nRow,int rowCount);
  80. void addTableRow(int tableIndex, int nRow, int rowCount);
  81. void setColumnHeight(int nTable, int column, int height);
  82. void intsertTable(int tableIndex, int row, int column);
  83. public:
  84. void setVisible(bool isVisible);
  85. private:
  86. QAxObject *m_word;
  87. QAxObject *m_documents;
  88. QAxObject *m_document;
  89. QString m_fileName;
  90. QString m_saveName;
  91. QString m_strError;
  92. QString m_strFilePath;
  93. bool m_bOpened;
  94. };
  95. #endif
  96. #endif // QWORD_H