将 .csv 文件转换为 xlsx 将 <> 添加到字段
Converting .csv file to xlsx adds <> to fields
我在Excel中打开了一个csv文件,然后将其转换为xlsx文件,以便我们可以通过C#的OLEDB接口将其导入到我们的系统中。
这是我们执行的一个简单查询 select * from [anyworksheet]
来填充数据表对象。但是,转换后我们收到一个错误。对于不同的列类型会发生这种情况:
- DateTime:无法将 <15-01-2015> 解析为 DateTime
- Int(空条目):无法将 < > 解析为 Int
我检查了 csv 文件,它的字段中不包含 <>,并且我试图对 excel 文件中的单元格强制设置日期时间格式,但没有成功。
即使没有解决方案,您至少可以告诉我这里发生了什么吗?
谢谢
我相当确定 <
和 >
仅作为错误消息的一部分出现,以明确实际值是什么。将它们视为引号。
在您的示例中,space 既不是整数也可以这样解析,您的日期格式也不合理。所以你得到错误并不让我感到惊讶。对于日期,请尝试使用 ISO-8601,即 YYYY-MM-DD,它应该在交换格式中工作得更好。
您也可以尝试使用 ClosedXML 库。
它比 OLEDb 更简单,并且不将字符串长度限制为 255 个字符。
我在Excel中打开了一个csv文件,然后将其转换为xlsx文件,以便我们可以通过C#的OLEDB接口将其导入到我们的系统中。
这是我们执行的一个简单查询 select * from [anyworksheet]
来填充数据表对象。但是,转换后我们收到一个错误。对于不同的列类型会发生这种情况:
- DateTime:无法将 <15-01-2015> 解析为 DateTime
- Int(空条目):无法将 < > 解析为 Int
我检查了 csv 文件,它的字段中不包含 <>,并且我试图对 excel 文件中的单元格强制设置日期时间格式,但没有成功。
即使没有解决方案,您至少可以告诉我这里发生了什么吗?
谢谢
我相当确定 <
和 >
仅作为错误消息的一部分出现,以明确实际值是什么。将它们视为引号。
在您的示例中,space 既不是整数也可以这样解析,您的日期格式也不合理。所以你得到错误并不让我感到惊讶。对于日期,请尝试使用 ISO-8601,即 YYYY-MM-DD,它应该在交换格式中工作得更好。
您也可以尝试使用 ClosedXML 库。 它比 OLEDb 更简单,并且不将字符串长度限制为 255 个字符。