我正在尝试使用 C# 来读取具有混合数据类型的 excel 文件。下面是我的连接字符串
var path = //xls location
var MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'");
研究告诉我Extended Properties
连接字符串中的完整应该是
Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text
但是,我被告知在连接字符串中,TypeGuessRows=0
没有任何意义,因为该值将直接取自 Registry。因此我需要手动修改密钥并从连接字符串中删除此属性。
所涉及的特定注册表项是:
小路:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
钥匙:
类型GuessRows
原始值 = 8,为了使它工作变为 = 0
如果不这样做,IMEX
我添加TypeGuessRows=0
到Extended Properties
.
但是,我公司禁止(严格)修改注册表值。我被告知要找到替代方案。
简而言之:
有没有一种方法可以读取混合数据类型的 excel文件而无需修改任何注册表项(这是一种很常见的做法)?
进一步的话题:
你以前有过这种经历吗?是否有我们可以TypeGuessRows=0
仅从连接字符串设置而无需修改注册表项的可能性(取消我的上述前提)。
如果事情没有解决OleDb
:
旁边有替代品OleDb
吗?
我感谢任何建议或建议。
问候