【问题标题】:openxml wordprocessing extended attributesopenxml 字处理扩展属性
【发布时间】:2018-01-02 11:31:51
【问题描述】:

我正在使用“AlternativeChunck”将 HTML 表转换为 openxml

AlternativeFormatImportPart AFIT = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Html, altChunkId);
AFIT.FeedData(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(myHTML)));
AltChunk altChunk = new AltChunk();
altChunk.Id = altChunkId;
mainPart.Document.Body.Append(altChunk);

表格单元格具有转换为 openxml 表格后需要的一些属性。至少我需要一个 ID 标签或属性来查找转换为 XML 后的每个单元格并根据该 ID 执行一些操作。如何在html中定义ID标签,转换后在XML中可用?

【问题讨论】:

    标签: html attributes tags openxml


    【解决方案1】:

    我做了两个假设:

    1. 您不是自己构建 HTML,否则您将在构建 HTML 时将 id 属性添加到每个单元格。
    2. HTML 是格式良好的 XML。

    基于上述假设,我将使用 XSLT 或 LINQ to XML 对 HTML 进行预处理,然后再将其附加到文档正文。如果执行 LINQ to XML,请尝试以下操作:

        public static string PreProcessHTML(string html)
        {
            string rtn = "";
    
            System.IO.StringReader rdr = new StringReader(html);
            XElement root = XElement.Load(rdr);
            var tds = root.Descendants("td");
            int i = 0;
            foreach (XElement td in tds)
            {
                td.SetAttributeValue("id", "id" + i.ToString());
                i++;
            }
    
            rtn = root.ToString(SaveOptions.None);
            return rtn;
        }
    

    【讨论】:

      猜你喜欢
      • 2021-08-14
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多