C# DataGridView无法识别=";“文本”;在excel中
我使用这段代码将xls文件读入我的DataGridView(C#Winform,2010) 但我发现DataGrid的单元格是空的,但xls文件在那里有价值: =“600+300” 至少DataGridView控件应该在那里显示600+300,或者至少显示一些内容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:
如何在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中单元格的格式。格式还将影响喷气发动机可以提供的值。我建议您在导入之前将所有单元格标记为文本,以提供一致的行为。
请注意,这可能会将日期转换为朱利安格式(从纪元算起的天数),但它们可以很容易地解析回来,如果数据是以文本格式输入的(仅使用常规格式和日期格式),则不会发生这种情况