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();
}