Excel中出现意外的字符

时间:2009-09-09 17:35:30

标签: c# excel char

我正在使用ADO.NET从Excel(xls)工作表填充数据表。

我有意外的字符。起初我以为他们在导入过程中会以某种方式出现,所以我尝试在C#程序中使用它们,但我没有尝试过。

最后,我将字符追溯到Excel,我能够在Excel中使用replace函数将char替换为''。这些字符在Excel中显示为空白,我只是通过从我们转储到文本文件的数据表中的位置向后工作来找到它们。

在Excel中我也尝试了清除格式化功能。但那并没有起到作用。

如何仅为ascii个字符(33到127)过滤数据表中的输入?

将数据表(typeof(System.String))列转换为字符串时,我会得到什么样的字符串。当我将字符串转换为字符数组时,我似乎无法识别字符。

有什么建议吗?由于这些字符是出乎意料的,我想确保过滤电子表格输入以仅保留可见的打印字符和空格。导入的文本应该只是文本,没有数字数据......

转储表时文本文件中出现的意外字符是ÿ

2 个答案:

答案 0 :(得分:0)

您的原始字段是否包含carriage return(“\r”),newline(“\n”),tab(“\t “)characters (Jon Skeet answering even outside stackoverflow)NULL字段?

在将信息发送到数据库之前尝试去除所有这些字符。

答案 1 :(得分:0)

谢谢,旅行者,你的回复。

不是我能说出来的。空单元格中有一些空值,但我已经摆脱了它们。我试图过滤掉任何\ r \ n,\ n,\ t和其他非打印字符。我已经在C中做了很多次这样的事情,但我似乎无法在C#程序中完成它。

最后我下载到excel工作表本身并使用vba宏(模块或其他任何名称)摆脱了所有违规字符(小于32且大于126)。有很多问题。

但所有数据都通过了C#程序,一个程序与许多电子表格,所以当然我更愿意在Excel中解决这个问题。