使用Spire.XLS读取Excel,具体文档请访问:
Spire.XLS for .NET 中文教程官方网址
Excel表模板如下:
具体实现代码C#:
private void Import(object obj)
{
System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();
openFileDialog.Multiselect = false;
openFileDialog.Filter = "Excel文件|*.xls;*.xlsx";
openFileDialog.Title = "选择Excel文件";
if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.Cancel)
{
//获取用户选择的Excel文件路径
string path = openFileDialog.FileName;
Workbook workbook = new Workbook();
//加载选择的文件
workbook.LoadFromFile(@path, ExcelVersion.Version2013);
Worksheet sheet = workbook.Worksheets[0];
//设置range范围
CellRange range = sheet.Range[sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn];
//输出数据, 同时输出列名以及公式值
DataTable dt = sheet.ExportDataTable(range, true, true);
if (dt.Rows.Count <= 0)
{
SystemService.MsgBoxService.ShowMsgBox("excel没有数据");
return;
}
var list = new List<Student>();
foreach (DataRow row in dt.Rows)
{
var studentXLS = new Student();
//Excel表中的每行的第一列数据
if (!row.ItemArray[0].ToString().Equals(""))
{
string i = (string)row.ItemArray[0];
studentXLS.Id = i;
}
//Excel表中的每行的第二列数据
if (!row.ItemArray[1].ToString().Equals(""))
{
string i = (string)row.ItemArray[1];
studentXLS.Name = i;
}
//有多少列,具体看导入的Excel表格式...本例中Excel表只有学生id和Name
list.add(studentXLS);
}
//最后全部的数据都存储在这里了,具体用途可以根据需求自己实现
var studentList = list;
}
}