【发布时间】:2009-04-16 11:00:36
【问题描述】:
我正在使用 OLEDB (C#) 写入 Excel 文件。 我需要的只是 RAW 数据格式。
我注意到所有单元格(标题和值)都以撇号 (') 为前缀
这是一种避免在所有文本单元格中添加它们的方法吗?
这是我的连接字符串:
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
filePath + ";Extended Properties='Excel 8.0;HDR=Yes'";
我试过这样使用 IMEX=1:
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
但之后我收到以下错误:
Microsoft Jet 数据库引擎找不到对象
'C:\Temp\新建文件夹\MF_2009_04_19_2008-11-182009_DMBHCSAM1118.xls'。
确保对象存在并且正确拼写它的名称和路径名。
最后我试过像这样使用 IMEX=0:
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=0\"";
这次没有提出任何例外。
很遗憾,撇号仍然存在问题 (所以我的每个值看起来都是:'123,'abc 等......)
有什么想法吗?
【问题讨论】:
-
为什么要改变定义扩展属性的方式?在您原来的 connectionString 中,您使用了单引号:'Excel 8.0;HDR=Yes',但之后您使用(转义)双引号:\"Excel 8.0;HDR=Yes;IMEX=1\" 这可能是问题吗?
-
也用 ' 测试过这个,行为是一样的。
-
请记住,在 Excel 中,您的精度限制为 15 个小数点。 ADO 这样做可能是为了让您输入 Excel 可能会尝试舍入和缩短的数据。
标签: c# .net excel oledb apostrophe