gpt4 book ai didi

c# - 帮助处理 excel 文件的 OleDB 连接字符串

转载 作者:IT王子 更新时间:2023-10-29 04:38:25 25 4
gpt4 key购买 nike

我遇到的问题是数据适配器只查看每列中的第一行以确定数据类型。在我的例子中,第一列“SKU”是前 500 行的数字,然后我碰巧有混合数字和字母的 SKU。所以最终发生的是 SKU 列中的行留空,但我仍然获得每列行的其他信息。

我相信这是控制它的连接字符串,并且根据我当前的设置它应该可以工作,但事实并非如此。

连接字符串:

conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";


ImportMixedTypes=Text;TypeGuessRows=0

应该是重要的关键字,查看 0 行并仅使用文本作为所有内容的值类型。

我在这上面加上的“创可贴”是让电子表格中的第一行混合字母和数字,特别是在我的查询中将该行排除在外。

最佳答案

不幸的是,您不能从连接字符串中设置 ImportMixedTypesTypeGuessRows,因为这些设置是在注册表中定义的。对于 ACE OleDb 驱动程序,它们存储在

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel

在注册表中。因此,您可以将连接字符串简化为:

conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1;""";

在注册表中将 TypeGuessRows 设置为 0 并将 ImportMixedTypes 设置为 Text 后,您应该会得到该行为你在期待。但是,如果您发现导入性能不理想,您可以考虑使用一个适当大的数字,例如 1000 而不是零。

关于c# - 帮助处理 excel 文件的 OleDB 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4551203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com