最近遇到C#读取Excel的问题,跟大家稍作分享。
系统中有读取Excel数据的程式,在我这边和欧洲User那边一直都没有问题,但是PM的测试环境会报错,通过Log发现是这样的错误代码:
“Selected collating sequence not supported by the operating system.”
检查相关文档,发现是由于OS的语言设置而引起EXCEL的排序规则在服务器上不支持。
PM使用的是欧洲User的Server,那么对应的OS是英文版的操作系统;
但是他上传的是本地的Excel,属于中文版,两者对应的语言设置不同。
这样的设置差异会导致在读取Excel的Sql语句中不能写栏位名称,只能通过*查找所有。
所以,代码中的SQL
select Model1, Model2, PartNo1, PartNo2, Version, SN from [SN$] where model1 <> ''
会有问题,
改为
select * from [SN$]
的话就会OK!
另一种方式,
就是修改Excel选项中对应的语言设置,将语言修改为同Server一致的选项。