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里有一列是日期格式的数据,导入到数组中就变为特定数字了,这个该怎么转换啊?
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,把数据导入二维数组之前,把时间字段数据Convert.ToDateTime(str);
或者
2,把数据从二维数组中导出时候,把时间字段的数据Convert.ToDateTime(str);
r.NumberFormatLocal="@";//文本格式
r.NumberFormat = "yyyy-MM-d HH:mm:ss";
引用 8 楼 h52888863 的回复:
引用 4 楼 huyou1983218 的回复:
Range是一个区域,存数组里干什么啊!直接用不好吗?我还要把数组里面的内容放在一个datatable中。这样快些,你有直接放的方法吗?我这里写了个类以XML格式存储Excel内容在内存中
[/Quote]
还是不行啊,那个只是格式化那个区域,提出来的时候转换不过来objVal = (object[,])preRange.Value2 ;就这一句,这个value2把日期格式非要转换成数字,range有其他用法吗?