gpt4 book ai didi

namespaces - XLSX-如何去掉默认的命名空间前缀 x :?

转载 作者:行者123 更新时间:2023-12-04 01:11:57 25 4
gpt4 key购买 nike

我正在使用 OOXML SDK 生成 XLSX 电子表格,我需要摆脱 x:命名空间前缀。我怎样才能做到这一点?

使用 (SpreadsheetDocument doc = SpreadsheetDocument.Open("template.xlsx", true))
{
//保存共享字符串表部分
如果 (doc.WorkbookPart.GetPartsOfType().Count() > 0)
{
SharedStringTablePart shareStringPart = doc.WorkbookPart.GetPartsOfType().First();
shareStringPart.SharedStringTable.Save();
}

//保存工作簿
doc.WorkbookPart.Workbook.Save();
}

在这里,原始 XLSX 文件来自 Excel 2007 并且没有前缀,但是,在保存操作后会出现前缀。我怎样才能避免这种情况?

最佳答案

这是由 div 链接的样式表的修改版本,它仅去除单个命名空间并逐字复制其余部分:

<xsl:stylesheet version="1.0" xmlns:x="namespace-to-strip" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" encoding="UTF-8"/>

<xsl:template match="/|comment()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

<xsl:template match="x:*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>

<xsl:template match="@x:*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>

<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>

关于namespaces - XLSX-如何去掉默认的命名空间前缀 x :?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com