“\u001e”(十六进制值 0x1E)是无效的字符

c#导出excel文件的时候,catch到异常报错:“\u001e”(十六进制值 0x1E)是无效的字符。

原因是调用 Cell PasteText(string reference, string text)时候,有非打印字符串混在里面,我们需要用如下函数过滤掉:

public string ReplaceLowOrderASCIICharacters(string tmp)//过滤低位非打印字符
        {
            StringBuilder info = new StringBuilder();
            foreach (char cc in tmp)
            {
                int ss = (int)cc;
                if (((ss >= 0) && (ss <= 8)) || ((ss >= 11) && (ss <= 12)) || ((ss >= 14) && (ss <= 32)))
                    info.AppendFormat(" ", ss);//&#x{0:X};
                else info.Append(cc);
            }
            return info.ToString();
        }

你可能感兴趣的:(c#,开发语言)