Исходя из вашего описания, вы хотите прочитать данные из другого листа в одном файле
.
Я предлагаю вам преобразовать файл Excel в набор данных и выбрать набор данных из набора данных
.
Как и в следующем коде:
Перед этим, пожалуйста, установите пакет nuget ExcelDataReader и ExcelDataReader.DataSet.
class Program
{
static void Main(string[] args)
{
DataSet set = ExcelToDataSet("D:\\test.xlsx");
DataTable table = set.Tables[0]; // first sheet
string data = ReadData(table, 0, "TeacherName");// the first row and colunname is teachername
Console.WriteLine(data);
table = set.Tables[1]; //second sheet
data = ReadData(table, 0, "StuName");// the first row and colunname is stuname
Console.WriteLine(data);
Console.ReadKey();
}
private static DataSet ExcelToDataSet(string fileName)
{
//open file and returns as Stream
FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read);
//Createopenxmlreader via ExcelReaderFactory
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); //.xlsx
//Set the First Row as Column Name
DataSet result = excelReader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
//Get all the Tables
//return
return result;
}
static string ReadData(DataTable table,int row,string columnname)
{
return table.Rows[row].Field<string>(columnname).ToString();
}
}
Я создал следующий Excel:
Первый лист:
Второй лист:
Если я запусту приведенный выше код, вы получите значение первого ряда и первого столбца двух листов.