开发者

Python实现在Word中创建,读取和删除列表详解

开发者 https://www.devze.com 2025-04-08 10:45 出处:网络 作者: nuclear2011
目录工具与设置python在Word中创建列表使用默认样式创建有序(编号)列表使用默认样式创建无序(项目符号)列表创建多级列表使用自定义样式创建列表Python读取Word中的列表Python从Word中删除列表在Word中,列表是一
目录
  • 工具与设置
  • python在Word中创建列表
    • 使用默认样式创建有序(编号)列表
    • 使用默认样式创建无序(项目符号)列表
    • 创建多级列表
    • 使用自定义样式创建列表
  • Python读取Word中的列表
    • Python从Word中删除列表

      在Word中,列表是一种用于组织和呈现信息的有效工具。它们不仅可以帮助用户清晰地展示数据、概念或步骤,还能增强文档的可读性和专业性。通过使用列表,用户能够更直观地理解信息之间的关系,尤其是在处理复杂内容时。在这篇博客中,我们将探讨如何使用Python在Word文档中创建、读取和删除列表,主要涉及的内容如下:

      • Python在Word中创建列表
        • 使用默认样式创建有序(编号)列表
        • 使用默认样式创建无序(项目符号)列表
        • 创建多级列表
        • 使用自定义样式创建列表
      • Python读取Word中的列表
      • Python从Word中删除列表

      工具与设置

      要使用Python在Word文档中创建和操作列表,可以使用Free Spire.Doc for Python库。它是一个免费的Word文档处理库,主要用于在Python应用程序中生成、读取、编辑和转换Word文档。

      在开始之前,请通过以下命令安装该库:

      pip install Spire.Doc.Free

      Python在Word中创建列表

      Microsoft Word提供了多种列表选项,包括有序(编号)列表python、无序(项目符号)列表和多级列表。用户可以使用默认样式创建列表,也可以根据自己的需求自定义列表的外观,例如,可以选择不同的编号格式或项目符号样式,以便更好地匹配文档的整体设计和风格。

      接下来,我们将逐一介绍如何使用Python在Word中创建这些列表。

      使用默认样式创建有序(编号)列表

      有序列表,也称为编号列表,它使用数字或字母标识项目,主要用于按特定顺序呈现步骤、排名或时间线等信息。

      要在Word文档中创建有序(编号)列表,只需使用 Section.AddParagraph() 方法添加段落,然后通过 Paragraph.ListFormat.ApplyNumberedStyle() 方法为这些段落应用默认的编号列表样式。

      以下是具体的实现步骤:

      初始化Document类的实例来创建一个新的Word文档。

      使用Document.AddSection()方法向文档添加一个节。

      创建一个List,用于存放生成列表的项目。

      遍历List。

      • 使用Section.AddParagraph()方法为当前列表项添加一个段落。
      • 使用Paragraph.AppendText()方法将当前列表项的文本内容添加到段落。
      • 使用Paragraph.ListFormat.ApplyNumberedStyle()方法为段落应用默认的编号列表样式。

      使用Document.SaveToFile()方法保存文档。

      实现代码

      以下代码展示了如何使用Python在Word文档中使用默认样式创建有序(编号)列表:

      from spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个节
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para = section.AddParagraph()
      para.Format.AfterSpacing = 5.0
      text_range = para.AppendText("有序列表示例:")
      text_range.CharacterFormat.FontName = "宋体"
       
      # 创建项目列表
      items = ["有序列表项目1", "有序列表项目2", "有序列表项目3"]
       
      # 将每个项目作为编号列表添加到文档中
      for item in items:
          # 为每个项目添加一个段落
          para = section.AddParagraph()
          text_range = para.AppendText(item)
          text_range.CharacterFormat.FontName = "宋体"
          # 将默认编号列表样式应用于段落
          para.ListFormat.ApplyNumberedStyle()
          
      # 保存文档
      doc.SaveToFile("默认有序列表.docx", FileFormat.Docx2016)
      doc.Close()

      Python实现在Word中创建,读取和删除列表详解

      使用默认样式创建无序(项目符号)列表

      无序列表,也叫做项目符号列表,它使用符号(如圆点或方块)标识项目,强调项目之间的关联性而不关心顺序,适用于列出相关特性或要点。

      要在Word文档中创建无序(项目符号)列表,可以使用Section.AddParagraph()Paragraph.ListFormat.ApplyBulletStyle()方法。具体的实现步骤与创建有序(编号)列表基本相同,此处不再详细说明。

      实现代码

      以下代码展示了如何使用Python在Word文档中使用默认样式创建无序(项目符号)列表:

      from spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个节
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para = section.AddParagraph()
      para.Format.AfterSpacing = 5.0
      text_range = para.AppendText("无序列表示例:")
      text_range.CharacterFormat.FontName = "宋体"
       
      # 创建项目列表
      items = ["无序列表项目1", "无序列表项目2", "无序列表项目3"]
       
      # 将每个项目作为项目符号列表添加到文档中
      for item in items:
          # 为每个项目添加一个段落
          para = section.AddParagraph()
          text_range = para.AppendText(item)
          text_range.CharacterFormat.FontName = "宋体"
          # 将默认项目符号列表样式应用于段落
          para.ListFormat.ApplyBulletStyle()    
       
      # 保存文档
      doc.SaveToFile("默认无序列表.docx", FileFormat.Docx2016)
      doc.Close()

      Python实现在Word中创建,读取和删除列表详解

      创建多级列表

      多级列表是一种包含多个层级的列表结构,允许在同一列表中结合有序和无序项目,以展示信息的层次关系和分类,使内容更加清晰和有条理。适用于创建大纲、分类数据或构建具有多个缩进级别的详细列表。

      Spire.Doc主要提供了两种方法来管理多级列表的级别:

      1.直接设置列表级别

      使用Paragraph.ListFormat.ListLevelNumber属性直接定义每个段落的列表级别。该属性接受从0到8的值,其中0表示级别1,8表示级别9。

      2.调整列表项目的缩进级别

      或者使用Paragraph.ListFormat.IncreaseIndentLevel()nluKfTdfhtParagraph.ListFormat.DecreaseIndentLevel()方法增加或减少列表项目的缩进级别。

      实现代码

      方法1:通过直接设置每个段落的列表级别来创建多级列表

      fro编程客栈m spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个节
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para = section.AddParagraph()
      para.Format.AfterSpacing = 5.0
      text_range = para.AppendText("多级列表示例:")
      text_range.CharacterFormat.FontName = "宋体"
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别1")
      text_range.CharacterFormat.FontName = "宋体"
      # 将默认编号列表样式应用于段落
      para.ListFormat.ApplyNumberedStyle()
      # 设置列表级别为级别1
      para.ListFormat.ListLevelNumber = 0
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别2")
      text_range.CharacterFormat.FontName = "宋体"
      # 将默认编号列表样式应用于段落
      para.ListFormat.ApplyNumberedStyle()
      # 设置列表级别为级别2
      para.ListFormat.ListLevelNumber = 1
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别1")
      text_range.CharacterFormat.FontName = "宋体"
      # 将默认编号列表样式应用于段落
      para.ListFormat.ApplyNumberedStyle()
      # 设置列表级别为级别1
      para.ListFormat.ListLevelNumber = 0
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别2")
      text_range.CharacterFormat.FontName = "宋体"
      # 将默认编号列表样式应用于段落
      para.ListFormat.ApplyNumberedStyle()
      # 设置列表级别为级别2
      para.ListFormat.ListLevelNumber = 1
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别3")
      text_range.CharacterFormat.FontName = "宋体"
      # 将默认编号列表样式应用于段落
      para.ListFormat.ApplyNumberedStyle()
      # 设置列表级别为级别3
      para.ListFormat.ListLevelNumber = 2
       
      # 保存文档
      doc.SaveToFile("多级列表.docx", FileFormat.Docx2016)
      doc.Close()

      Python实现在Word中创建,读取和删除列表详解

      方法2:通过增加或减少列表项目的缩进级别来创建多级列表:

      from spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个节
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para = section.AddParagraph()
      para.Format.AfterSpacing = 5.0
      text_range = para.AppendText("多级列表示例:")
      text_range.CharacterFormat.FontName = "宋体"
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别1")
      text_range.CharacterFormat.FontName = "宋体"
      # 将默认编号列表样式应用于段落
      para.ListFormat.ApplyNumberedStyle()
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别2")
      text_range.CharacterFormat.FontName = "宋体"
      # 增加缩进级别
      para.ListFormat.IncreaseIndentLevel()
      # 继续上一个列表
      para.ListFormat.ContinueListNumbering()
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别1")
      text_range.CharacterFormat.FontName = "宋体"
      # 减少缩进级别
      para.ListFormat.DecreaseIndentLevel()
      # 继续上一个列表
      para.ListFormat.ContinueListNumbering()
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别2")
      text_range.CharacterFormat.FontName = "宋体"
      # 增加缩进级别
      para.ListFormat.IncreaseIndentLevel()
      # 继续上一个列表
      para.ListFormat.ContinueListNumbering()
       
      # 添加段落
      para = section.AddParagraph()
      text_range = para.AppendText("多级列表 - 级别3")
      text_range.CharacterFormat.FontName = "宋体"
      # 增加缩进级别
      para.ListFormat.IncreaseIndentLevel()
      # 继续上一个列表
      para.ListFormat.ContinueListNumbering()
       
      # 保存文档
      doc.SaveToFile("多级列表.docx", FileFormat.Docx2016)
      doc.Close()

      Python实现在Word中创建,读取和删除列表详解

      使用自定义样式创建列表

      除了默认列表样式外,还可以给列表应用自定义样式。

      要实现此功能,首先需要使用ListStyle类创建自定义列表样式,并使用该类的属性自定义其外观。然后使用Document.ListStyles.Add()方法将该列表样式添加到文档中。最后,使用Paragraph.ListFormat.ApplyStyle()方法将该列表样式应用于段落。

      实现代码

      以下代码展示了如何使用Python在Word文档中创建自定义样式的编号列表:

      from spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个部分
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para 编程= section.AddParagraph()
      text_range = para.AppendText("自定义编号列表示例:")
      # 设置标题字体
      text_range.CharacterFormat.FontName = "宋体"
      para.Format.AfterSpacing = 5.0
       
      # 创建自定义编号列表样式,指定第一级的编号前缀、后缀和编号类型
      listStyle = ListStyle(doc, ListType.Numbered)
      listStyle.Name = "自定义样式"
      listStyle.Levels[0].NumberPrefix = "("
      listStyle.Levels[0].NumberSufix = ")"
      listStyle.Levels[0].PatternType = ListPatternType.Arabic
       
      # 将列表样式添加到文档
      doc.ListStylesandroid.Add(listStyle)
       
      # 添加段落并应用自定义列表样式
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目1")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目2")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目3")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目4")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      # 保存文档
      doc.SaveToFile("自定义编号列表.docx", FileFormat.Docx2016)
      doc.Dispose()

      Python实现在Word中创建,读取和删除列表详解

      以下代码展示了如何在Python中创建自定义样式的项目符号列表:

      from spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个节
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para = section.AddParagraph()
      para.Format.AfterSpacing = 5.0
      text_range = para.AppendText("自定义项目符号列表示例:")
      # 设置标题字体
      text_range.CharacterFormat.FontName = "宋体"
       
      # 创建自定义项目符号列表样式,指定第一级的项目符号字符和字体
      listStyle = ListStyle(doc, ListType.Bulleted)
      listStyle.Name = "自定义样式"
      listStyle.Levels[0].BulletCharacter = "\u002A"
      listStyle.Levels[0].CharacterFormat.FontName = "Symbol"
       
      # 将列表样式添加到文档
      doc.ListStyles.Add(listStyle)
       
      # 添加段落并应用自定义列表样式
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目1")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目2")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表项目3")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      # 保存文档
      doc.SaveToFile("自定义项目符号列表.docx", FileFormat.Docx2016)
      doc.Dispose()

      Python实现在Word中创建,读取和删除列表详解

      以下代码展示了如何在Python中创建带前一级编号前缀的多级编号列表:

      from spire.doc import *
       
      # 创建新的Word文档
      doc = Document()
      # 向文档添加一个节
      section = doc.AddSection()
      section.PageSetup.Margins.All = 72
       
      # 添加一个标题段落
      para = section.AddParagraph()
      para.Format.AfterSpacing = 5.0
      text_range = para.AppendText("自定义多级列表示例:")
      # 设置标题字体
      text_range.CharacterFormat.FontName = "宋体"
       
      # 创建自定义编号列表样式,指定特定级别的编号前缀和编号类型
      listStyle = ListStyle(doc, ListType.Numbered)
      listStyle.Name = "自定义样式"
      listStyle.Levels[0].PatternType = ListPatternType.Arabic
      # NumberPrefix的值应满足语法"%n",以将上一级列表值更新为当前级别的前缀
      listStyle.Levels[1].NumberPrefix = "%1."
      listStyle.Levels[1].PatternType = ListPatternType.Arabic
      listStyle.Levels[2].NumberPrefix = "%1.%2."
      listStyle.Levels[2].PatternType = ListPatternType.Arabic
       
      # 将列表样式添加到文档
      doc.ListStyles.Add(listStyle)
       
      # 添加段落并应用自定义列表样式
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表 - 级别 1")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表 - 级别 1")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表 - 级别 2")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 1
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表 - 级别 2")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ContinueListNumbering()
      para.ListFormat.ApplyStyle("自定义样式")
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表 - 级别 3")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 2
       
      para = section.AddParagraph()
      text_range = para.AppendText("自定义列表 - 级别 1")
      text_range.CharacterFormat.FontName = "宋体"
      para.ListFormat.ApplyStyle("自定义样式")
      para.ListFormat.ListLevelNumber = 0
       
      # 保存文档
      doc.SaveToFile("自定义多级编号列表.docx", FileFormat.Docx2016)
      doc.Dispose()

      Python实现在Word中创建,读取和删除列表详解

      Python读取Word中的列表

      要从Word文档中获取列表,你需要遍历段落并判断它们是否应用了列表格式。对于具有列表格式的段落,你可以通过以下属性获取列表的详细信息,例如列表编号或项目符号、列表项的文本内容、列表类型和嵌套级别:

      • Paragraph.ListText:获取列表编号或项目符号。
      • Paragraph.Text:获取列表项的文本内容。
      • Paragraph.ListFormat.ListType:获取列表的类型(例如,编号、项目符号)。
      • Paragraph.ListFormat.ListLevelNumber:获取列表项的嵌套级别(从0开始)。

      实现代码

      以下代码展示了如何使用Python从Word文档中获取列表:

      from spire.doc import *
       
      # 打开现有的Word文档
      doc = Document()
      doc.LoadFromFile("多级列表.docx")
       
      # 获取第一个节
      section = doc.Sections[0]
       
      # 遍历节中的段落
      for para_index in range(section.Paragraphs.Count):
          para = section.Paragraphs[para_index]
          # 查找具有列表格式的段落
          if(para.ListFormat.ListType != ListType.NoList):      
              # 提取列表编号或项目符号、列表项的文本内容、列表类型和嵌套级别     
              print(f"列表编号和内容: {para.ListText + para.Text}")
              print(f"列表类型: {para.ListFormat.ListType}")
              print(f"列表级别: {para.ListFormat.ListLevelNumber + 1}")
       
      doc.Close()

      Python实现在Word中创建,读取和删除列表详解

      Python从Word中删除列表

      如果你需要清除Word段落的列表格式,只需调用Paragraph.ListFormat.RemoveList()方法。该方法将从段落中删除项目符号或编号,同时保留文本。

      实现代码

      以下代码展示了如何使用Python清除Word段落的列表格式:

      from spire.doc import *
       
      # 打开现有的Word文档
      doc = Document()
      doc.LoadFromFile("多级列表.docx")
       
      # 获取第一个节
      section = doc.Sections[0]
       
      # 从段落中删除列表格式
      for para_index in range(section.Paragraphs.Count):
          para = section.Paragraphs[para_index]
          if(para.ListFormat.ListType != ListType.NoList):      
              para.ListFormat.RemoveList()
       
      # 保存文档
      doc.SaveToFile("删除列表.docx", FileFormat.Docx2016)
      doc.Dispose()

      Python实现在Word中创建,读取和删除列表详解

      到此这篇关于Python实现在Word中创建,读取和删除列表详解的文章就介绍到这了,更多相关Python Word列表操作内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号