DataGridView 在 excel 中无法识别 =“text”

本文关键字:text 识别 excel DataGridView | 更新日期: 2023-09-27 18:34:40

我正在使用此代码将 xls 文件读入我的 DataGridView (C# Winform, 2010(

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
                    "Data Source=" + FileName + ";Jet OLEDB:Engine Type=5;Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";

但我发现 DataGrid 的单元格是空白的,但 xls 文件在那里有价值:="600+300">

至少 DataGridView 控件应该在那里显示 600+300,或者至少显示一些东西?

如何在我的数据网格视图中获取此类值???

DataGridView 在 excel 中无法识别 =“text”

从Excel电子表格导入时有许多限制,其中之一是TypeGuessRows问题。默认情况下,Jet 引擎将仅扫描前 8 行以确定列的数据类型,任何不匹配的内容都不会导入到数据集中。

建议1:

为了帮助缓解此问题,您可以通过将名为 TypeGuessRows 的注册表属性设置为 0 来增加 Excel 将扫描的行数,如以下示例所示。

注册表项:

HKEY_LOCAL_MACHINE'SOFTWARE'Wow6432Node'Microsoft'Jet'4.0'Engines'ExcelRegistry

密钥名称:类型猜测行

默认值:8

新值:0

根据您的操作系统和 Jet 版本,此密钥可能位于略有不同的位置,或者您甚至可能必须添加它。

欲了解更多信息:http://sqlserverrider.wordpress.com/2012/11/11/excel-data-type-guess-registry-setting/

建议2:

另一个潜在的问题是Excel中单元格的格式。该格式还将影响喷气发动机可以提供的值。我建议您在导入之前将所有单元格标记为文本,以提供一致的行为。请注意,这可能会将日期转换为儒略格式(自纪元以来的天数(,但它们可以很容易地解析回来,如果数据以文本格式输入开始(仅使用常规和日期格式(,则不会发生这种情况