我使用Excel应用程序打开了* .htm文件(Microsoft.Office.Interop.Excel
)。它被解析得非常好!所以我可以使用它。为了更快的速度,我想从Excel中的数据和插入的System.Array,并与它的工作:C#/ Excel:将Excel范围转换为数据类型正确的数组
Excel.Range range = ExcelWorksheet.get_Range("A1", "H1500"); // get all values
System.Array dataArray = (System.Array)(range.Cells.Value2); // insert into array
问题是数据类型。如果Excel单元格有时间或日期格式,range.Cells.Value2
使得:
12.06.2012到41072(Excel单元格类型 - 日期)
14:48至0,616666666666667(Excel单元格类型 - 时间)
如果我得到一个价值形态Excel单元格中,我得到正确的值(与Cells.Text.ToString()
):
ExcelWorksheet.get_Range("A1", "A1").Cells.Text.ToString()
任务:我需要的,因为他们得到Excel工作表的值,就如文本,而不是另一种类型。
而不希望Excel认为而不是我:)
当然你是对的。问题是,当我将范围转换为数组'System.Array dataArray =(System.Array)(range.Cells.Value2)'时,数组的对象单元(与'object [,] dataArray'相同)存储基础excel单元的数据类型。所以我可以知道,如果数据数组的单元格是日期时间类型,如 'if(dataArray.GetValue(1,1)是DateTime)' 我可以执行上述操作。我解决了这样的问题: 'object [,] dataArray =(object [,])range.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);'。 DataTime值表示为'2012-06-01 0:00:00'。也可以与他们一起工作。 –