int RowCount = WorkSheet.UsedRange.Rows.Count;
                    int iColumnAccount = WorkSheet.UsedRange.Columns.Count;
            
                               object[,] objVal = new object[RowCount-2, iColumnAccount]; 
preRange = excel.excelApp.get_Range("A"+3, (colName
                        + ((int)(RowCount )).ToString()));                    objVal = (object[,])preRange.Value2 ;
为了增加速度,我用get_Range属性把excel整个表的数据导入二维数组中,然后再倒入datatable,结果现在excel里有一列是日期格式的数据,导入到数组中就变为特定数字了,这个该怎么转换啊?

解决方案 »

  1.   

    这个怎么用啊?我放的数组里面已经是数字代号了,而取excel又是按区块取的。如何处理哇
      

  2.   

    这个问题没遇到过,
    不过个人认为有两种办法可以尝试着解决一下:
    1,把数据导入二维数组之前,把时间字段数据Convert.ToDateTime(str);
    或者
    2,把数据从二维数组中导出时候,把时间字段的数据Convert.ToDateTime(str);
      

  3.   

    Range是一个区域,存数组里干什么啊!直接用不好吗?
      

  4.   

    或修改Excel的单元格格式可以吗?
      

  5.   

    我还要把数组里面的内容放在一个datatable中。这样快些,你有直接放的方法吗?
      

  6.   

        Range r = workstee.cells[1,1];
        r.NumberFormatLocal="@";//文本格式
      

  7.   

    或者
      r.NumberFormat = "yyyy-MM-d HH:mm:ss";
      

  8.   

    我这里写了个类以XML格式存储Excel内容在内存中
      

  9.   

    Quote=引用 12 楼 huyou1983218 的回复:]
    引用 8 楼 h52888863 的回复:
    引用 4 楼 huyou1983218 的回复:
    Range是一个区域,存数组里干什么啊!直接用不好吗?我还要把数组里面的内容放在一个datatable中。这样快些,你有直接放的方法吗?我这里写了个类以XML格式存储Excel内容在内存中
    [/Quote]
    还是不行啊,那个只是格式化那个区域,提出来的时候转换不过来objVal = (object[,])preRange.Value2 ;就这一句,这个value2把日期格式非要转换成数字,range有其他用法吗?