C# 如何在C语言中从excel文件中读取数据类型#

C# 如何在C语言中从excel文件中读取数据类型#,c#,excel,file,types,C#,Excel,File,Types,我正在尝试从Excel文件中读取数据。有没有办法检查每个单元格中的数据类型 我已经试过了;但是结果是一个非常复杂的类,没有帮助 以下是我的部分代码: Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range range; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(FilePath

我正在尝试从Excel文件中读取数据。有没有办法检查每个单元格中的数据类型

我已经试过了;但是结果是一个非常复杂的类,没有帮助

以下是我的部分代码:

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
Excel.Range range;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(FilePath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;

var a = range.Cells[1/*row*/, 1/*column*/] as Excel.Range;

var type = a.GetType();
更新:例如,通过运行此行:

string MobileNumber = (string)(range.Cells[1, 7] as Excel.Range).Value2;
我得到这个错误:

无法将类型“double”转换为“string”

但通过以下代码解决了此问题:

double tempValue = (range.Cells[1, 7] as Excel.Range).Value2;
string MobileNumber = tempValue.ToString();

你所说的数据类型是什么意思?你有一个范围,而不是一个单元格。所以它的类型是
Excel.Range
。如果你想知道一个单元格包含什么类型的数据,那几乎是不可能知道的。例如,a
24
,是一个有效的整数,以及
string
decimal
double
和所有数字类型。if(type.toString().Equals(“DateTime”){//it is date time}或者if(type.toString().Equals(“double”){//it is double}@selman我认为这不是真的!查看更新。@Mary:您希望.Value2的值在Excel范围内是多少?从MSDN:返回或设置单元格值。读/写。一个范围也可以是1个单元格,那么这就有意义了。对于多个单元格,这是没有意义的。@Charlie I get“System.\u ComObject”用于所有单元格。