EXCEL表里有数值7004277597,即当数据值为数字且长度较长时,就会出现7.00428e+009这样的数值出现在DATAGRID里,请问如何去除,
以下我是我的联接方式:
"Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"

解决方案 »

  1.   

    to EXCEL表里有数值7004277597,即当数据值为数字且长度较长时,就会出现7.00428e+009这样的数值出现在DATAGRID里,请问如何去除,这是你的datagrid显示double的方式是用科学技术法显式。你需要设置它的输出格式,这方面可以参看
    DataGridTextBoxColumn dgtbc= dataGrid1.TableStyles[0].GridColumnStyles[fieldColIndex] as DataGridTextBoxColumn;  
    if(dgtbc != null) 
        dgtbc.Format = "D";  
      

  2.   

    是在设置myDataGrid.DataSource后还是设置数据源前,我按此方法加上去后,出现如下错误
    ————————————————————————————————————————
    An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dllAdditional information: Index was out of range.  Must be non-negative and less than the size of the collection.
      

  3.   

    this.myDataGrid.DataSource=myDataset2.Tables["TableData"];
    DataGridTextBoxColumn dgtbc= myDataGrid.TableStyles[0].GridColumnStyles[5] as DataGridTextBoxColumn;  
    if(dgtbc != null) 
    dgtbc.Format = "D";
      

  4.   

    GridColumnStyles: Index starts from 0
      

  5.   

    to Knight94(愚翁)
    我在使用Excel时也遇到了这样的问题,我和楼主不同的是,我的数据在Excel中是文本类型的,比如:0912007006,这样的数据被导入到DataSet中后同样也变成了科学记数法,请问一下愚翁,对于文本类型的数据,能否可以使用dgtbc.Format = "D"; 这样的方法解决吗?
      

  6.   

    to loveyzy
    导文本类型的直接调用要导入数据的tostring()方法就可以了。
      

  7.   

    我已经用了toString()方法了,但文本类型数据从Excel中到了DataSet中后就变成科学记数法了.
    还有一点要说明,就是这种情况不是每次都发生,绝大多数情况下转换都是成功的,但有时会发生上述情况,但不知道为什么
      

  8.   

    to 我在使用Excel时也遇到了这样的问题,我和楼主不同的是,我的数据在Excel中是文本类型的,比如:0912007006,这样的数据被导入到 DataSet中后同样也变成了科学记数法,请问一下愚翁,对于文本类型的数据,能否可以使用dgtbc.Format = "D"; 这样的方法解决吗?不是所有类型都能用“D”,这是对数字类型才有的格式化操作符,这方面你参看msdn中的Iformattable接口。
      

  9.   

    to楼主:请问你是用什么方法把EXCEL数据导入到DATAGRID中的啊?可否告诉我啊。谢谢了!然后又怎样把datagrid中的数据保存到SQL数据库中呢?