手机怎么制作网站教程视频教程网站建设空间空间有几种类型
web/
2025/10/3 8:09:13/
文章来源:
手机怎么制作网站教程视频教程,网站建设空间空间有几种类型,住房与城乡建设厅网站,苏小小移动网站目录 开发环境原理使用的QT库搭建开发环境准备word模板测试用例结果Gitee地址 开发环境
vs2022 Qt 5.9.1 msvc2017_x64#xff0c;在文章最后提供了源码。
原理
Qt对于word文档的操作都是在书签位置进行插入文本、图片或表格的操作。
使用的QT库
除了基本的gui、core、… 目录 开发环境原理使用的QT库搭建开发环境准备word模板测试用例结果Gitee地址 开发环境
vs2022 Qt 5.9.1 msvc2017_x64在文章最后提供了源码。
原理
Qt对于word文档的操作都是在书签位置进行插入文本、图片或表格的操作。
使用的QT库
除了基本的gui、core、widget库外还需要ActiveQt库。
Qt5AxBased.libQt5AxContainerd.lib
搭建开发环境
我是在vs2022上进行开发换成qt creator同理。
右键属性选择-》Qt projecting-》勾选这几个 链接器-》常规-》输入 Qt5AxBased.lib
Qt5AxContainerd.lib
Qt5Widgetsd.lib
Qt5Guid.lib准备word模板 在想要插入的地方设置书签
// 接口文件
#pragma once#include iostreamclass IQtWordProject
{public:virtual ~IQtWordProject() {}/** brief 根据word模板创建报告后缀是.dot* param _templatePat 模板路径绝对路径* return true表示成功, false表示失败*/virtual bool WordApplication(const std::string _templatePath) 0;/** brief 根据wps模板创建报告后缀是.wpt* param _templatePath 模板路径绝对路径* return true表示成功false表示失败*/virtual bool WpsApplication(const std::string _templatePath) 0;/** brief 设置生成报告时报告是否可见默认不可见* param _visible true表示可见false表示不可见* return 无。*/virtual void SetVisible(const bool _visible false) 0;/** brief 往指定书签插入文本内容* param _mark 书签名* param _content 内容* return 成功返回true失败返回false*/virtual bool SetMarkContent(const std::string _mark, const std::string _content) 0;/** brief 往指定书签插入图片* param _mark 书签名* param _pngPath 图片路径绝对路径* return 成功返回true失败返回false*/virtual bool SetMarkPicture(const std::string _mark, const std::string _pngPath) 0;/** brief 往指定书签创建表格* param _mark 书签名* param _row 创建的表格行数* param _col 创建的表格列数* param _tableTitle 表格标题* return 成功返回true 失败返回false*/virtual bool SetMarkTable(const std::string _mark, const int _row, const int _col, const std::string _tableTitle) 0;/** brief 指定表格插入行* param _tableNum 指定表格是第几个从1开始* param _startRow 插入的起始行* param _rows 插入的行数* return 成功返回true 失败返回false*/virtual bool InsertTableRows(const int _tableNum, const int _startRow, const int _rows) 0;/** brief 指定表格删除行* param _tableNum 指定表格是第几个从1开始* param _row 删除的行号从1开始* return 成功返回true 失败返回false*/virtual bool DeleteTableRow(const int _tableNum, const int _row) 0;/** brief 刷新表格内容* param _tableNum 指定表格是第几个从1开始* param _tableContent 表格内容* return 成功返回true 失败返回false*/virtual bool UpdateTableData(const int _tableNum, const std::vectorstd::string _tableContent) 0;/** brief 保存文件并退出* param _docPath 保存的文件路径文件名支持doc、docx* return 无*/virtual void SaveFileQuit(const std::string _docPath) 0;
};测试用例
测试用例实现了插入文本、插入图片、对表格进行插入行、创建表格、给表格添加内容的功能。
// main.cpp#include QtWordProject.h#include QtWidgets/QApplication
#include QString
#include QVariantList
#include qdebug.h
#include memoryint main(int argc, char *argv[])
{QApplication a(argc, argv);std::shared_ptrIQtWordProject word std::make_sharedQtWordProject();// 替换为你的模板路径QString templatePath QApplication::applicationDirPath() /../../template.doc;word-WordApplication(QString2StdString(templatePath));// 向指定标签插入文本内容word-SetMarkContent(Customer_Name, CJX);word-SetMarkContent(Name, 语文);word-SetMarkContent(Number, 100);// 替换为你的图片路径QString imagePath QApplication::applicationDirPath() /../../1.png; word-SetMarkPicture(picture, QString2StdString(imagePath));// 创建表格word-SetMarkTable(table, 3, 3, Table Test);// 给第一个表格插入行word-InsertTableRows(1, 2, 2);// 第二个表格删除一行word-DeleteTableRow(2, 1);// 给第二个表格刷新内容std::vectorstd::string tableContent { 1,2,3,4,5,6};word-UpdateTableData(2, tableContent);// 保存文件//将文件保存为doc同样可以生成docx文档QString pathsave QApplication::applicationDirPath() /../../result.doc;word-SaveFileQuit(QString2StdString(pathsave));// 这个widget显示出来说明整个文档已经保存下来了QWidget* widget new QWidget;widget-show();return a.exec();
}
结果 Gitee地址
https://gitee.com/hnSVN/QtWordEditor
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86109.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!