C#读取导入Excel表格里的数据并存到对象中

使用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;
             }
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神也畏惧小卢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值