使用Spire.XLS读取Excel,具体文档请访问:
Spire.XLS for .NET 中文教程官方网址
Spire.XLS官方文档简介
Spire.XLS for .NET 是一款专业的 .NET Excel 组件, 它可以用在各种 .NET 框架中,包括 ASP.NET 和 Windows Forms 等相关的 .NET 应用程序。Spire.XLS for .NET提供了一个对象模型 Excel API,使开发人员可以快速地在 .NET 平台上完成对 Excel 的各种编程操作,如根据模板创建新的Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换。Spire.XLS for .NET 是一个独立的 Excel 组件,不依赖于 Microsoft Office Excel。它同时支持旧版的 Excel 97-2003(.xls) 格式文档和新版的 Excel 2007、Excel 2010、Excel 2013、Excel 2016(.xlsx, .xlsb, .xlsm) 以及 Open Office(.ods)格式文档。与自己开发 Excel 程序或使用 Microsoft Automation 相比,它具有速度快和可靠性高等优点。
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;
}
}