gpt4 book ai didi

.net - Excel 单元格值被 OLEDB 提供程序截断

转载 作者:行者123 更新时间:2023-12-01 17:49:38 25 4
gpt4 key购买 nike

我正在使用 OleDbConnection 类从 Excel 2000/2003 工作簿检索数据:

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + filename + ";" +
"Extended Properties=\"Excel 8.0;IMEX=1\";";

OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();

// code to get table name from schema omitted

var dataAdapter = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", name),connection);
var myDataSet = new DataSet();
dataAdapter.Fill(myDataSet, "ExcelInfo");

现在发现工作表中长度超过 255 个字符的单元格被截断。这是 Microsoft.Jet.OLEDB-provider 中的限制吗?或者我可以对此做些什么?

有人吗?

最佳答案

Excel 的 OLEDB 提供程序将尝试根据前 8 行数据自动确定数据类型,这可以使用连接字符串中的 HDR=Yes/No 属性进行设置。此外,它还可以应用于文本列的多种类型。备忘录类型包含超过 255 个字符,因此如果前 8 行都没有该字符,那么它将错误地设置数据类型。

更改此设置的方法是更改​​名为 TypeGuessRows 的注册表设置,如下所述:Microsoft Support

注意:TypeGuessRows 键值的有效范围是 0 到 16。但是,如果该值为 0,则扫描的源行数为 16384。因此,如果您有一个非常大的文件,请确保最大的行是首先。

关于.net - Excel 单元格值被 OLEDB 提供程序截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898513/

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