我要使用excel对象读取单元格里内容 我用了((Range)excel.Cells[3,3]).Text
但是问题是当单元格宽度不够时单元格里的内容会变成##### 我读出来的也是#####
问:我该怎样取出原始数据?

解决方案 »

  1.   

    那时因为Excel的那一列的宽度显示不出来日期或者数字,你把Excel的那一列拉宽试一下,呵呵
      

  2.   

    首先确定一下显示成#####的列是否是日期数字,如果是的话吧这几列的显示改成text类型的就应该可以了
    在dg的itemdatabound事件里写
    if ( e.Item.ItemType==ListItemType.Item
    e.Item .ItemType==ListItemType.AlternatingItem )
    {
       e.Item.Cells[你要修改的列标].Attributes.Add("style","vnd.ms-excel.numberformat:@");
    }btw,实时更新Excel是怎么做出来的
      

  3.   


    ((Range)firstSheet.Cells[1,1]).Value2.ToString();
      

  4.   

    ####就是放的日期数字 宽度不够所以显示#### 
    ((Range)firstSheet.Cells[1,1]).Value2.ToString();
    这个不对巴!
      

  5.   

    改称text列的话不行啊 读出来是3333.3333设么的
      

  6.   

    我给你的代码是我以前输入证件号码的时候号码太长会出现科学技术法,所以改成text的,就是把number改称text,你的情况应该是把datetime类型改成text,所以应该按照我的那个改改,具体怎么改你baidu一下看看
      

  7.   

    vnd.ms-excel.numberformat:@
    这一句,在你的情况下应该不是numberformat,我猜是datetimeformat,猜的,纯粹是猜得
      

  8.   

    把原来日期类型转换为text类型会出来小数 譬如333.3333
      

  9.   

    还有一个笨方法,是在DataGrid里边在日期的前面加上一个不明显的标号,比如
    4/26/2006 写成 "` 4/26/2006",这样Excel就不会把它当成是DateTime类型的了,这个是不得已的办法,呵呵,其实如果客户没有要求的话,显示成####也没什么阿,楼主说明一家就好
      

  10.   

    在sourceforge里面找Net.SourceForge.Koogra直接使用这个第三方的, 确实很方便。而且不依赖客户端的excel版本。
      

  11.   

    ((Range)excel.Cells[3,3]).Value
    行么?用Value属性取值,同样用Value属性赋值
      

  12.   

    ((Range)excel.Cells[3,3]).Value
    行么?
    不行
      

  13.   

    Range("F15").Select
        Selection.ColumnWidth = Len(ActiveCell.Value)