Linux下QT生成word报告(openXML格式)

Windows下可利用word的COM组件,调用Word软件生成docx文件,在Linux下没有MS Word也没有COM组件,所以只能直接写openXML格式的方式生成。

WPS,MSWord均支持openXML,用户操作与docx完全一致。

支持文字、表格和图片的处理,目前不支持表格合并。

段落支持左对齐、右对齐、居中对齐及两端对齐,两端对齐模式下,首行自动缩进。

内容写完后,需调用endDocument函数。

table*系列函数应严格按次序调用,或者准备好内容后,调用addTable函数一次性绘制表格。

需要cpp源代码的可留言或私信。

class WordWriter : public QXmlStreamWriter
{
public:
    WordWriter(QFile& file);

    typedef enum{Align_Left, Align_Center, Align_Right, Align_Both} Para_Align;
    void endDocument();
    void addParagraph(QString strText, Para_Align align= Align_Both, QString strFont="宋体", int nFontHeight=28);
    void table_begin(int nCols, double cmWidths[]);                  // sum of widths should be 8425
    void table_beginRow();
    void table_endRow();
    void table_setCell(QString strText, double cmWidth, Para_Align align= Align_Both, QString strFont="宋体", int nFontHeight=28);
    void table_end();

    void addTable(int nCols, double cmWidths[], QVector<QStringList> contents,bool bAutoAlign = true,QString strFont="宋体", int nFontHeight=28);
    void addImage(QString strImageFileName, double cmWidth, double cmHeight);
private:
    int m_iImageId;
    int m_irId;
    struct ImgInfo
    {
        int iId;
        int rId;
        QString strFile;
        QString strType;
    };
    QVector<ImgInfo> m_images;
};

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值