我有一个字符串,我想使用 C# 中的 openxml 组件将其导出到 Excel 文件。我的文本有 '\u001f' 字符,而 openxml 对此字符有错误。错误文本:“十六进制值 0x1f,是无效字符”。
我将该测试直接复制到 Excel 中,没有问题,复制成功。
OpenXml 是否有解决此问题的配置或我如何解决此问题。
thanks.
您需要使用以下格式编写它_xHHHH_
where H
代表一个十六进制字符。在您的特定实例中,您需要将该值设置为"_x001F_"
.
从文档中细胞值 https://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.cellvalue(v=office.15).aspx:
该元素的可能值由 ST_Xstring 简单类型 (第 22.9.2.19 节) 定义。
反过来,ST_Xstring
(取自ECMA-376标准 http://www.ecma-international.org/publications/standards/Ecma-376.htm) 记录为:
22.9.2.19 ST_Xstring(转义字符串)
支持转义无效 XML 字符的字符串。
对于 XML 1.0 规范定义的所有无法在 XML 中表示的字符,这些字符
使用 Unicode 数字字符表示转义字符格式进行转义xHHHH,其中 H
表示字符值中的十六进制字符。 [示例:不允许使用 Unicode 字符 8
在 XML 1.0 文档中,因此必须将其转义为x0008。结束示例]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)