It can be solved with "MicMicrosoft.Office.Interop.Excel".
1. Add the COM reference, "Microsoft Excel 14.0 Object Library", add "using Excel = MicMicrosoft.Office.Interop.Excel;"
2. Here is an example for reading data in the range "A8:B21" in "a.xls", and the sheet name is "Sheet1"
var app = new Excel.Application();
Excel.Workbook workBook = app.Workbooks.Open(@"C:\Users\Administrator\Documents\a.xls");
Excel.Sheets sheets = workBook.Worksheets;
Excel.Worksheet datasheet = null;
foreach (Excel.Worksheet sheet in sheets)
{
if (sheet.Name == "Sheet1")
{
datasheet = sheet;
break;
}
}
if (null == datasheet)
return;
object[,] var = datasheet.get_Range("A9", "B21").get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);
for (int i = 1; i <= var.GetLength(0); ++i)
{
for (int j = 1; j <= var.GetLength(1); ++j)
{
Console.Write((double)var[i, j] + " ");
}
Console.WriteLine();
}
workBook.Close();