Excel接受一些字符,而OpenXml有错误

我有一个字符串,我想在excel文件中使用C#中的openxml组件导出。 我的文字有’\ u001f’字符,openxml有这个字符的错误。 错误文本:“hex值0x1f,是无效字符”。

我将该测试直接复制到excel并没有问题,复制成功。

OpenXml是否有解决此问题的配置或如何解决此问题。

谢谢。

您需要使用_xHHHH_格式编写它,其中H表示hex字符。 在您的特定实例中,您需要将值设置为"_x001F_"

从Cell Value的文档:

此元素的可能值由ST_Xstring简单类型(第22.9.2.19节)定义。

反过来, ST_Xstring (取自ECMA-376标准 )记录为:

22.9.2.19 ST_Xstring(转义字符串)
支持转义的无效XML字符的字符串。 对于无法用XML 1.0规范定义的XML表示的所有字符,使用Unicode数字字符表示转义字符格式xHHHH转义字符,其中H表示字符值中的hex字符。 [示例:XML 1.0文档中不允许使用Unicode字符8,因此必须将其转义为x0008 。 结束例子]