将.csv文件转换为xlsx会添加<>到田野

时间:2015-09-22 07:38:38

标签: c# excel csv oledb

我在Excel中打开了一个csv文件,然后将其转换为xlsx文件,以便我们可以通过C#通过OLEDB接口将其导入我们的系统。

这是一个简单的查询,我们select * from [anyworksheet]来填充数据表对象。但是,转换后我们收到错误。对于不同的列类型会发生这种情况:

  • DateTime:无法解析< 15-01-2015>作为DateTime
  • Int(null entry):无法解析< >作为Int

我检查了csv文件但它不包含<>在字段中,并试图强制在Excel文件中的单元格上的日期时间格式,它不起作用。

你能告诉我这里发生了什么,即使没有解决方案吗?

由于

2 个答案:

答案 0 :(得分:1)

我非常确定<>仅作为错误消息的一部分出现,以明确实际值是什么。把它们想象成引号。

在你的例子中,空格都不是整数,可以这样解析,你的日期格式也不合理。所以你得到错误并不会让我感到惊讶。对于日期尝试使用ISO-8601,即YYYY-MM-DD,它应该在交换格式中更好地工作。

答案 1 :(得分:1)

您也可以尝试使用ClosedXML库。 它比OLEdb更简单,并且不会将字符串长度限制为255个字符。