如何使用C++ 在Word文档中创建列表

news2024/11/30 8:36:33

列表分类是指在Word文档中使用不同格式排序的列表,来帮助我们一目了然地表达出一段文字的主要内容。比如,当我们描述了某个主题的若干点,就可以用列表把它们一一表达出来,而不是写成完整的段落形式。同时,列表也可以帮助我们做出精确的计算和比较,简洁有效地表示出不同部分之间的关系。在Word文档中创建列表可以便于人们去检索资料方便定位,其中总共有四种不同类型的列表:编号列表、项目符号列表、多级编号列表和多级混合类型列表。本文就将详细为您介绍如何使用C++在Word文档中创建编号列表、项目符号列表和多级列表

  • 在Word中创建编号列表
  • 在Word中创建项目符号列表
  • 在Word中创建多级编号列表
  • 在Word中创建多级混合类型列表

安装 Spire.Doc for C++

有两种方法可以将 Spire.Doc for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.Doc for C++ 集成到 C++ 程序中

在Word中创建编号列表

您可以使用ListStyle类创建编号列表样式或项目符号样式。然后,可以使用Paragraph->GetListFormat()->ApplyStyle() 方法将列表样式应用于段落。创建编号列表的步骤如下。

  • 创建一个Document对象。
  • 使用Document->AddSection() 方法添加一个节。
  • 创建ListStyle类的实例,将列表类型指定为Numbered
  • 使用ListStyle->GetLevels()->GetItem(index) 方法获取列表的特定级别,并使用ListLevel->SetPatternType() 方法设置编号类型。
  • 使用Document->GetListStyles()->Add() 方法将列表样式添加到文档中。
  • 使用Section->AddParagraph() 方法将多个段落添加到文档中。
  • 使用Paragraph->GetListFormat()->ApplyStyle() 方法将列表样式应用于特定段落。
  • 使用Paragraph->GetListFormat()->GetListLevelNumber() 方法指定列表级别。
  • 使用Document->SaveToFile() 方法将文档保存到Word文件中。

完整代码

C++

#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

    //创建一个Document对象
    intrusive_ptr<Document> document = new Document();

    //添加一个节
    intrusive_ptr<Section> section = document->AddSection();

    //创建编号列表样式
    intrusive_ptr<ListStyle> listStyle = new ListStyle(document, ListType::Numbered);
    listStyle->SetName(L"numberedList");
    listStyle->GetLevels()->GetItem(0)->SetPatternType(ListPatternType::DecimalEnclosedParen);
    listStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
    document->GetListStyles()->Add(listStyle);

    //添加一个段落
    intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
    paragraph->AppendText(L"完整的论证要素:");
    paragraph->GetFormat()->SetAfterSpacing(5);

    //添加段落并对其应用编号列表样式
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"论题");
    paragraph->GetListFormat()->ApplyStyle(L"numberedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //再添加四个段落,并将编号列表样式应用于特定段落
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"论点");
    paragraph->GetListFormat()->ApplyStyle(L"numberedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"论据");
    paragraph->GetListFormat()->ApplyStyle(L"numberedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"论证方式");
    paragraph->GetListFormat()->ApplyStyle(L"numberedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);


    //将文档保存为Word文件
    document->SaveToFile(L"FE编号列表.docx", FileFormat::Docx2019);
    document->Dispose();
}

效果图

 

在Word中创建项目符号列表

创建项目符号列表的过程与创建编号列表的过程类似。不同之处在于,创建列表样式时,必须将列表类型指定为“项目符号”,并为其设置项目符号。以下是详细步骤。

  • 创建一个Document对象。
  • 使用Document->AddSection() 方法添加一个节。
  • 创建ListStyle类的实例,将列表类型指定为“Bulleted”。
  • 使用ListStyle->GetLevels()->Get(index) 方法获取列表的特定级别,并使用ListLevel->SetBulletCharacter() 方法设置项目符号。
  • 使用Document->GetListStyles()->Add() 方法将列表样式添加到文档中。
  • 使用Section->AddParagraph() 方法将多个段落添加到文档中。
  • 使用Paragraph->GetListFormat()->ApplyStyle() 方法将列表样式应用于特定段落。
  • 使用Paragraph->GetListFormat()->SetListLevelNumber() 方法指定列表级别。
  • 使用Document->SaveToFile() 方法将文档保存到Word文件中。

完整代码

C++

#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

    //创建一个Document对象
    intrusive_ptr<Document> document = new Document();

    //添加一个节
    intrusive_ptr<Section> section = document->AddSection();

    //创建项目符号列表样式
    intrusive_ptr<ListStyle> listStyle = new ListStyle(document, ListType::Bulleted);
    listStyle->SetName(L"bulletedList");
    listStyle->GetLevels()->GetItem(0)->SetBulletCharacter(L"\u00B7");
    listStyle->GetLevels()->GetItem(0)->GetCharacterFormat()->SetFontName(L"Symbol");
    listStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
    document->GetListStyles()->Add(listStyle);

    //添加一个段落
    intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
    paragraph->AppendText(L"常用的六种论证方法:");
    paragraph->GetFormat()->SetAfterSpacing(5);

    //添加段落并对其应用项目符号列表样式
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"举例论证");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //再添加五个段落,并将项目符号列表样式应用于特定段落
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"道理论证");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"对比论证");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"比喻论证");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"引用论证");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"因果论证");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //保存结果文档
    document->SaveToFile(L"FE项目符号列表.docx", FileFormat::Docx2019);
    document->Dispose();
}

效果图

 

在Word中创建多级编号列表

多级列表至少由两个不同的级别组成。嵌套列表的每个级别都可以使用ListStyle->GetLevels()->GetItem(index) 方法进行访问。通过ListLevel对象,您可以设置某个级别的编号类型和前缀。以下是在Word中创建多级编号列表的步骤。

  • 创建一个Document对象。
  • 使用Document->AddSection() 方法添加一个节。
  • 创建ListStyle类的实例,将列表类型指定为Numbered
  • 使用ListStyle->GetLevels()->GetItem(index) 方法获取列表的特定级别,并设置编号类型和前缀。
  • 使用Document->GetListStyles()->Add() 方法将列表样式添加到文档中。
  • 使用Section->AddParagraph() 方法将多个段落添加到文档中。
  • 使用Paragraph->GetListFormat()->ApplyStyle() 方法将列表样式应用于特定段落。
  • 使用Paragraph->GetListFormat()->SetListLevelNumber() 方法指定列表级别。
  • 使用Document->SaveToFile() 方法将文档保存到Word文件中。

完整代码

C++

#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

    //创建一个Document对象
    intrusive_ptr<Document> document = new Document();

    //添加一个节
    intrusive_ptr<Section> section = document->AddSection();

    //创建编号列表样式,指定每个级别的编号前缀和图案类型
    intrusive_ptr<ListStyle> listStyle = new ListStyle(document, ListType::Numbered);
    listStyle->SetName(L"nestedStyle");
    listStyle->GetLevels()->GetItem(0)->SetPatternType(ListPatternType::Arabic);
    listStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
    listStyle->GetLevels()->GetItem(1)->SetNumberPrefix(L"%1.");
    listStyle->GetLevels()->GetItem(1)->SetPatternType(ListPatternType::Arabic);
    listStyle->GetLevels()->GetItem(2)->SetNumberPrefix(L"%1.%2.");
    listStyle->GetLevels()->GetItem(2)->SetPatternType(ListPatternType::Arabic);
    document->GetListStyles()->Add(listStyle);

    //添加一个段落
    intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
    paragraph->AppendText(L"这是一个多级编号列表:");
    paragraph->GetFormat()->SetAfterSpacing(5);

    //添加段落并对其应用编号列表样式
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"水果");
    paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //再添加五个段落,并将编号列表样式应用于特定段落
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"蔬菜");
    paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"根菜类");
    paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(1);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"叶菜类");
    paragraph->GetListFormat()->ContinueListNumbering();
    paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"小白菜");
    paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(2);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"谷物");
    paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //保存结果文档
    document->SaveToFile(L"FE多级编号列表.docx", FileFormat::Docx2019);
    document->Dispose();
}

效果图

 

在Word中创建多级混合类型列表

多级列表可以是编号列表和项目符号列表的组合。要创建混合类型列表,只需要创建编号列表样式和项目符号列表样式,并将它们应用于不同的段落。具体步骤如下。

  • 创建一个Document对象。
  • 使用Document->AddSection() 方法添加一个节。
  • 创建编号列表样式和项目符号列表样式。
  • 使用Section->AddParagraph() 方法将多个段落添加到文档中。
  • 使用Paragraph->GgetListFormat()->ApplyStyle() 方法将不同的列表样式应用于不同的段落。
  • 使用Document->SaveToFile() 方法将文档保存到Word文件中。

完整代码

C++

#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

    //创建一个Document对象
    intrusive_ptr<Document> document = new Document();

    //添加一个节
    intrusive_ptr<Section> section = document->AddSection();

    //创建编号列表样式
    intrusive_ptr<ListStyle> numberedListStyle = new ListStyle(document, ListType::Numbered);
    numberedListStyle->SetName(L"numberedStyle");
    numberedListStyle->GetLevels()->GetItem(0)->SetPatternType(ListPatternType::Arabic);
    numberedListStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
    numberedListStyle->GetLevels()->GetItem(1)->SetPatternType(ListPatternType::LowLetter);
    document->GetListStyles()->Add(numberedListStyle);

    //创建项目符号列表样式
    intrusive_ptr<ListStyle> bulletedListStyle = new ListStyle(document, ListType::Bulleted);
    bulletedListStyle->SetName(L"bulletedStyle");
    bulletedListStyle->GetLevels()->GetItem(2)->SetBulletCharacter(L"\u002A");
    bulletedListStyle->GetLevels()->GetItem(2)->GetCharacterFormat()->SetFontName(L"Symbol");
    document->GetListStyles()->Add(bulletedListStyle);

    //添加段落
    intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
    paragraph->AppendText(L"这是一个多级混合列表:");
    paragraph->GetFormat()->SetAfterSpacing(5);

    //添加段落并对其应用编号列表样式
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"水果");
    paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //再添加五个段落,并对其应用不同的列表样式
    paragraph = section->AddParagraph();
    paragraph->AppendText(L"瓜果类");
    paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(1);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"浆果类");
    paragraph->GetListFormat()->SetListLevelNumber(1);
    paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"蔓越莓");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(2);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"覆盆子");
    paragraph->GetListFormat()->ApplyStyle(L"bulletedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(2);

    paragraph = section->AddParagraph();
    paragraph->AppendText(L"蔬菜");
    paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
    paragraph->GetListFormat()->SetListLevelNumber(0);

    //保存结果文档
    document->SaveToFile(L"FE多级混合类型列表.docx", FileFormat::Docx);
    document->Dispose();
}

效果图

—本文完—

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何查看mysql里面的锁(详细)

通过查询表统计信息查看 information_schema库下相关事务表和锁相关信息表介绍innodb_trx存储了当前正在执行的事务信息trx_id&#xff1a;事务ID。trx_state&#xff1a;事务状态&#xff0c;有以下几种状态&#xff1a;RUNNING、LOCK WAIT、ROLLING BACK 和 COMMITTING。trx…

各位自学网络安全的同学,你们的学习路线真的对吗

最近在知乎上看到很多问题&#xff0c;都是小白想要转行网络安全行业咨询学习路线和学习资料的&#xff0c;作为一个培训机构&#xff0c;学习路线和免费学习资料肯定是很多的。机构里面的不是顶级的黑阔大佬就是正在学习的同学&#xff0c;也用不上这些内容&#xff0c;每天都…

Educational Codeforces Round 139 (Rated for Div. 2)

Educational Codeforces Round 139 (Rated for Div. 2) Problem - 1766E - Codeforces 显然我们可以把0序列的贡献单独算: i*(n-i1) 考虑只存在1,2,3的情况. 首先通过&#xff0c;观察到一个重要性质: 最多只有三种序列. 含有3或纯1或纯2型.纯1或纯2型纯2或纯1型 我们每次添加…

照片资源异地共享 ? tftgallery、xampp、快解析三种工具就能实现!

我的工作中&#xff0c;经常会收到处理各种图片的任务&#xff0c;在处理完图片之后&#xff0c;怎么发送给客户呢&#xff1f;传输的实现&#xff0c;需要一个安全而稳定的环境和即时方便的工具去进行操作与下载。一般情况下&#xff0c;我们大多会选择微信、QQ来作为传输下载…

Seata AT模式源码解析三(AT模式工作机制)

文章目录 代码示例流程源码解析开启全局事务注册分支事务一阶段提交全局事务提交分支事务二阶段提交全局事务回滚分支事务二阶段回滚 代码示例 从一个微服务示例开始&#xff0c;案例采用Seata官方提供的Demo。 用户购买商品的业务逻辑。整个业务逻辑由3个微服务提供支持&…

五大网络IO模型

网络IO模型 1. IO是什么&#xff1f; I/O&#xff08;英语&#xff1a;Input/Output&#xff09;&#xff0c;即输入&#xff0f;输出&#xff0c;通常指数据在存储器&#xff08;内部和外部&#xff09;或其他周边设备之间的输入和输出&#xff0c;是信息处理系统&#xff0…

Qt编程基础 | 第七章-MVD框架 | 7.1、MVD框架简介

一、MVD框架 1.1、MVC设计模式 MVC是一种与用户界面相关的设计模式&#xff0c;通过使用该设计模式&#xff0c;可以有效的分离数据与用户界面。MVC设计模式包含三个元素&#xff1a;表示数据的模型&#xff08;Model&#xff09;、表示用户界面的视图&#xff08;View&#x…

Android开发 外部存储空间

一、存储空间 对Andriod来说&#xff0c;存储空间分为内部存储空间和外部存储空间。 外部存储空间也就是常说的SD卡&#xff0c;可以分为私有存储空间和公共存储空间。 内部存储空间和外部存储空间的私有存储空间&#xff0c;都是每个APP独有的&#xff0c;不允许其他APP访问…

超详细的wireshark抓包使用教程

前言 Wireshark是非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括&#xff1a; 1、Wireshark软件下载和安装以及Wireshark主界面介绍。 2、WireShark简单抓包示例。通过该…

sql函数练习题

1. 计算用户8月每天的练题数量 题目&#xff1a;现在运营想要计算出2021年8月每天用户练习题目的数量&#xff0c;请取出相应数据。 示例&#xff1a;question_practice_detail iddevice_idquestion_idresultdate12138111wrong2021-05-0323214112wrong2021-05-0933214113wro…

2019上半年上午题

2019上半年上午题 a c c c d b b 应用代理网关防火墙 c a 使用数字证书对用户的身份进行认证 d 发送方的私钥签名&#xff0c;发送方公钥确认 d b 职务作品&#xff1a;归公司所有 a b b 从抽象到具体 d 等差数列求和&#xff1a; d 构建节点之间的关系图 然后…

4.Ansible Inventory介绍及实战 - A list or group of lists nodes

什么是inventory&#xff1f; 官方解释&#xff1a;Ansible automates tasks on managed nodes or “hosts” in your infrastructure, using a list or group of lists known as inventory. Ansible可以同时与您基础设施中的一个或多个系统协同工作&#xff61;为了与多台服务…

音视频学习:同步原理及实现

1.音视频同步简单介绍 对于一个播放器&#xff0c;一般来说&#xff0c;其基本构成均可划分为以下几部分&#xff1a; 数据接收&#xff08;网络/本地&#xff09;->解复用->音视频解码->音视频同步->音视频输出。 基本框架如下图所示&#xff1a; 为什么需要音视…

Python学习之批量word文档转pdf并统计其页码

pypdf2是一个Python模块&#xff0c;可以用来读取、写入和操作PDF文件。要安装pypdf2模块&#xff0c;请按照以下步骤操作&#xff1a; 确保你已经安装了Python。你可以在终端或命令提示符中输入python --version来检查Python是否已安装。 pypdf2模块的安装&#xff1a; Modu…

【2023年电工杯数学建模竞赛B题人工智能对大学生学习影响的评价】完整思路分析+完整代码

1.问题背景与描述 这道题整体还是相对简单的&#xff0c;比较适合新手&#xff0c;选的人多对应获奖数量也会多&#xff0c;所以不要纠结于选题&#xff0c;就选你看上去能做的就好 2.问题分析 2.1 问题一的分析 对附件2中所给数据进行分析和数值化处理&#xff0c;并给出处…

GitHub标星11.9k兼职项目!基于SpringBoot + VUE电商-分销商城系统(附源码)

商城介绍 商城系统支持商家入驻&#xff0c;后端基于SpringBoot 研发&#xff0c;前端使用 Vue、uniapp开发&#xff0c; 系统全端全部代码开源 前后端分离&#xff0c;支持分布式部署&#xff0c;支持Docker&#xff0c;各个API独立&#xff0c;并且有独立的消费者。 商城 …

【VR】手柄定位技术

1. 关于Quest Pro头显、控制器的规格分析&#xff08;终篇&#xff09;及Quest 3分辨率 &#xff08;2022年07月29日&#xff09;被认为是“Quest Pro”的高端一体机Project Cambria将于今年秋季正式发布。对于一直关注和分享所述设备情报的YouTuber布拉德利林奇&#xff08;B…

python知识点总结(1)

声明&#xff1a;python不同于其他语言的最厉害之处就在于其他的第三方库可以实现不同的功能&#xff0c;但是在学习其他第三方库之前&#xff0c;我们还需要学习完python语言的基础。基础我们都学过&#xff0c;但是总有一些知识点平时很少使用&#xff0c;再碰到很陌生。这里…

云原生之深入解析Docker容器退出码的含义和产生原因

一、前言 为什么我的容器没有运行?回答这个问题之前,需要知道 Docker 容器为什么退出?退出码会提示容器停止运行的情况?本文列出最常见的退出码,来回答两个重要问题:这些退出码是什么意思?导致该退出码的动作是什么?exit code:代表一个进程的返回码,通过系统调用 exi…

URLConnection(三)

文章目录 1. 配置连接2. protected URL url3. protected boolean connected4. protected boolean allowUserInteraction5. protected boolean doInput5. protected boolean doOutput6. protected boolean isModifiedSince7. protected boolean useCaches8. 超时 1. 配置连接 U…