BEAST*北大鱼 2022-02-22 09:10 采纳率: 100%
浏览 144
已结题

C# Aspose 对Word文档的操作

怎样使用aspose得到各级标题,得到标题下有多少表格,并得到表格的序号

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-02-22 09:43
    关注

    更新了下代码,非嵌套统计正确

    img

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Aspose.Words;
    
    namespace Aspose.Words
    {
        class Program
        {
            static void Main(string[] args)
            {
                Document doc = new Document(@"C:\Users\Admin\Desktop\t.docx");
                var tableCountTotal = 0;
    
    
                var ps = doc.GetChildNodes(NodeType.Paragraph, true);
                foreach(Paragraph p in ps)
                {
                    if (p.ParagraphFormat.StyleIdentifier == StyleIdentifier.Heading2)
                    {
                        var text = p.GetText().Trim();//去掉收尾空格,要不有\r打印后不显示内容,-_-||。。
    
               
                        //统计h2标题后的table数量
                        var count = 0;
                        Node node = p.NextSibling;
                         if (node != null)
                             do
                             {
                                 if (node.NodeType == NodeType.Table) count++;
                                 node = node.NextSibling;
                                 if (node == null//没有下个节点
                                     ||
                                     (//碰到下一个标题2退出table统计
                                     node.NodeType == NodeType.Paragraph
                                     && ((Paragraph)node).ParagraphFormat.StyleIdentifier == StyleIdentifier.Heading2
                                     )
                                     )
                                     break;
                             }
                             while (true);
    
                         tableCountTotal += count;
    
                        Console.WriteLine(text + "下有"+count+"个表格");
                    }
    
                }
                Console.WriteLine("总共有个表格:" + tableCountTotal + "\n");
                Console.WriteLine("H2-1\r测试");//H2-1没显示。。。还以为代码有问题了。。-_-||
                Console.ReadKey();
            }
        }
    }
    

    API参考,DOM模型


    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月22日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效