C# DataGridView无法识别=";“文本”;在excel中

C# DataGridView无法识别=";“文本”;在excel中,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我使用这段代码将xls文件读入我的DataGridView(C#Winform,2010) 但我发现DataGrid的单元格是空的,但xls文件在那里有价值: =“600+300” 至少DataGridView控件应该在那里显示600+300,或者至少显示一些内容 如何在my DataGridView中获取这些值?从Excel电子表格导入时有很多限制,其中之一就是TypeGuessRows问题。默认情况下,Jet引擎将仅扫描前8行以确定列的数据类型,任何不匹配的内容都不会导入数据集中 建议1:

我使用这段代码将xls文件读入我的DataGridView(C#Winform,2010)

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

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


如何在my DataGridView中获取这些值?

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

建议1:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\ExcelRegistry
为了帮助减少此问题,您可以通过将名为TypeGuessRows的注册表属性设置为0来增加Excel将扫描的行数,如下例所示

注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\ExcelRegistry
密钥名称: 打字机行

默认值:8

新值:0

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

有关更多信息:

建议2:

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