微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您可以递归获取OpenXMLElement的父级部分吗?

如何解决您可以递归获取OpenXMLElement的父级部分吗?

我有一个OpenXML应用程序,我正在尝试扩展其功能。需要明确的是,我知道了ClosedXML,但是这个应用程序距离太远,无法突然切换。此处的目的是仅使用 OpenXML 扩展功能

在一些新的帮助器函数中,我添加一个名为“ GetParentPart”的函数。看起来如下:

    public static object GetParentPart(OpenXmlElement element,Type typetoFind)
    {
        OpenXmlElement parent = null;
        Type type = typetoFind.GetType();
        if (typetoFind == typeof(Worksheet))
        {
            if (element.Parent.GetType() == typeof(Worksheet)) { parent = element.Parent; }
            else { parent = (OpenXmlElement)GetParentPart(element.Parent,typetoFind); }
        }
        else if (typetoFind == typeof(Stylesheet))
        {
            if (element.Parent.GetType() == typeof(Stylesheet)) { parent = element.Parent; }
            else { parent = (OpenXmlElement)GetParentPart(element.Parent,typetoFind); }
        }
        return parent;
    }

如果我需要新的父部件,只需在if..then

添加一个附加子句

我不明白的是结果。例如,由于层次结构的原因,使用应用程序中现有集合中填充的Fill对象会返回 a StyleSheet:填充>填充>样式表。

但是,似乎与应用于工作簿的样式表不同,因此以下代码返回false。

     public IsParentEqual(SpreadsheetDocument doc)
     {
          Fill myFill = MyFills[0].Fill;
          Stylesheet stylesheetA = (Stylesheet)GetParentPart(Myfill,typeof(Stylesheet));
          Stylesheet stylesheetB = doc.WorkbookPart.WorkbookStylesPart.Stylesheet;
          return stylesheetA.Equals(stylesheetB);
     }

MyFills是一个结构,其中包含当前文档中的所有fill元素,以及应用程序中使用的一些其他属性

我想念什么吗?每个文档只有一个样式表时,我如何收到两个不同的样式表?

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。