C# Datagridview列值显示问题

C# Datagridview列值显示问题,c#,excel,datagridview,C#,Excel,Datagridview,我无法解决以下问题: 连接到Excel(oledb连接) 将所有数据提取到datagridview 从Excel获取的示例源(Col1到Col3 Excel属性为“常规”,Col4为日期特定): 一旦数据进入datagridview (DataGridView.AutoGenerateColumns=True),它似乎需要 假定Col2仅包含整数,不显示 不是整数的单元格值 从datagridview获取的示例: Col1 Col2 Col3 Col4 Text

我无法解决以下问题:

  • 连接到Excel(oledb连接)
  • 将所有数据提取到
    datagridview
从Excel获取的示例源(Col1到Col3 Excel属性为“常规”,Col4为日期特定):

  • 一旦数据进入
    datagridview
    DataGridView.AutoGenerateColumns=True
    ),它似乎需要 假定
    Col2
    仅包含整数,不显示 不是整数的单元格值
从datagridview获取的示例:

   Col1 Col2    Col3    Col4
    Text1   1.5 288.77  3/1/2013
    Text2   1.3 352.47  3/1/2013
    Text3       206.93  3/1/2013
    Text4   1   206.93  3/1/2013
    Text5   1   206.93  3/1/2013
  • 实际问题是我正在验证datagridview中的数据 针对一个XML文件,我正在验证一个日志,该日志提供了用户rowID 和实际的源值。我似乎无法得出相同的值 datagridview的
  • 到目前为止,我找到的唯一部分解决方案是显式 将所有Excel字段转换为文本,但这显然会弄乱一些 字段的名称(例如:日期字段)

如何获取datagridview中的所有源文件值,然后执行所有后续的数据验证任务?

我建议创建一个数据表,其中的数据列具有所需的类型,然后将数据获取到DataTable中。最后,将DataTable绑定到DataGridview可能会对您有所帮助。
您确实不需要了解文件中数据的任何信息,就可以构建一个可用的表。

看起来您只是试图将Excel原始数据(在Excel工作表中格式化)提取到datagridview中进行显示,然后执行其他数据验证。 我建议使用下面的混合列连接字符串示例(IMEX):


我连这个都看不懂。格式化一点。为格式化问题道歉-应该现在就解决。谢谢塔里克,这里有一个进一步的澄清-我对不同类型的数据使用这个,所以它应该是动态的。我无法设置精确的列数和类型,因为这些列数和类型可能因源而异。您有没有办法提前确定列数据类型?我的意思是,在从Excel读取数据时,您能否在运行时确定列类型?谢谢,这正是我所需要的——按原样提取数据,然后继续执行任何要求的验证。这是读取Excel文件的有效方法,但Ventsislav的答案正是我所需要的。谢谢。没问题。很高兴你得到了你需要的东西。
   Col1 Col2    Col3    Col4
    Text1   1.5 288.77  3/1/2013
    Text2   1.3 352.47  3/1/2013
    Text3       206.93  3/1/2013
    Text4   1   206.93  3/1/2013
    Text5   1   206.93  3/1/2013
strConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
                                        "Data Source=" + strFilePath + ";Jet OLEDB:Engine Type=5;Extended Properties='Excel 12.0;HDR=NO;IMEX=1'";