C#读取Excel文件
2021/11/20 14:39:59
本文主要是介绍C#读取Excel文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C#读取Excel数据
在visual studio 2019创建一个Form窗体文件,设计一个Button按钮和一个GridView控件(用来显示Excel中的数据)
private void Button1_Click(object sender, EventArgs e) { //实例化DataTable来存放数据 DataTable dt = new DataTable(); string fileName = @"你的文件路径"; string sheetName = "sheet1";//Excel的工作表名称 bool isColumnName = true;//判断第一行是否为标题列 IWorkbook workbook;//创建一个工作薄接口 string fileExt = Path.GetExtension(fileName).ToLower();//获取文件的拓展名 //创建一个文件流 using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(fs); } else { workbook = null; } //实例化sheet ISheet sheet = null; if (sheetName != null && sheetName != "")//判断是否存在sheet { sheet = workbook.GetSheet(sheetName); if (sheet == null) { sheet = workbook.GetSheetAt(0);//从第一个开始读取,0位索引 } else { sheet = workbook.GetSheetAt(0); } } //获取表头 IRow header = sheet.GetRow(sheet.FirstRowNum); int startRow = 0;//数据的第一行索引 if (isColumnName)//表示第一行是列名 { startRow = sheet.FirstRowNum + 1;//数据从第二行开始读 //遍历表的第一行,即所有的列名 for (int i = header.FirstCellNum; i < header.LastCellNum; i++) { ICell cell = header.GetCell(i); if (cell != null) { //获取列名的值 string cellValue = cell.ToString(); if (cellValue != null) { DataColumn col = new DataColumn(cellValue); dt.Columns.Add(col); } else { DataColumn col = new DataColumn(); dt.Columns.Add(col); } } } } //读取数据 for (int i = startRow; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row == null) { continue; } DataRow dr = dt.NewRow(); for (int j = row.FirstCellNum; j < row.LastCellNum; j++) { if (row.GetCell(j) != null) { dr[j] = row.GetCell(j).ToString(); } } dt.Rows.Add(dr); } } dataGridView1.DataSource = dt; }
然后启动程序,点击button按钮,即可读取Excel中的数据。
窗体数据
Excel数据
这篇关于C#读取Excel文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统