VS2022 C# 读取 excel 2023年

这篇具有很好参考价值的文章主要介绍了VS2022 C# 读取 excel 2023年。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天是2023年6月26日,我有一个excel表要读数据,然后放到winform程序来处理,网上的资料太旧,很多用不起来,试了一个可以使用,记录一下:

一、excel文件后缀需要小写。

VS2022 C# 读取 excel 2023年,.NET,VS2022 excel

VS2022 C# 读取 excel 2023年,.NET,VS2022 excel

二、用VS2022建一个winform程序,在NuGet中安装NPOI

VS2022 C# 读取 excel 2023年,.NET,VS2022 excel

VS2022 C# 读取 excel 2023年,.NET,VS2022 excel

三、C#程序代码读取excel数据,感觉速度还是可以,很快:

VS2022 C# 读取 excel 2023年,.NET,VS2022 excel

全部程序代码:文章来源地址https://www.toymoban.com/news/detail-719105.html

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;


namespace readexcel
{
    public partial class Form1 : Form
    {

        public class GT_table
        {
            public int id { get; set; }
            public string t1 { get; set; }
            public string t2 { get; set; }
        }


        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {


            DataTable dt = ExcelToDatatable(@"D:\20231025.xlsx", "Sheet1", true);
            //将excel表格数据存入list集合中
            //EachdayTX定义的类,字段值对应excel表中的每一列
            List<GT_table> table = new List<GT_table>();
            foreach (DataRow dr in dt.Rows)
            {
                GT_table line = new GT_table
                {
                    id = Convert.ToInt32(dr[0]),
                    t1 = dr[1].ToString(),
                    t2 = dr[2].ToString(), 

                };

                listBox1.Items.Add(line.id + "," + line.t1 + "," + line.t2);
                table.Add(line);
            }
    }


        #region 读取Excel数据
        /// <summary>
        /// 将excel中的数据导入到DataTable中
        /// </summary>
        /// <param name="fileName">文件路径</param>
        /// <param name="sheetName">excel工作薄sheet的名称</param>
        /// <param name="isFirstRowColumn">第一行是否是DataTable的列名,true是</param>
        /// <returns>返回的DataTable</returns>
        public static DataTable ExcelToDatatable(string fileName, string sheetName, bool isFirstRowColumn)
         {
        ISheet sheet = null;
        DataTable data = new DataTable();
        int startRow = 0;
        FileStream fs;
        IWorkbook workbook = null;
        int cellCount = 0;//列数
        int rowCount = 0;//行数
        try
        {
            fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            if (fileName.IndexOf(".xlsx") > 0) // 2007版本
            {
                workbook = new XSSFWorkbook(fs);
            }
            else if (fileName.IndexOf(".xls") > 0) // 2003版本
            {
                workbook = new HSSFWorkbook(fs);
            }
            if (sheetName != null)
            {
                sheet = workbook.GetSheet(sheetName);//根据给定的sheet名称获取数据
            }
            else
            {
                //也可以根据sheet编号来获取数据
                sheet = workbook.GetSheetAt(0);//获取第几个sheet表(此处表示如果没有给定sheet名称,默认是第一个sheet表)  
            }
            if (sheet != null)
            {
                IRow firstRow = sheet.GetRow(0);
                cellCount = firstRow.LastCellNum; //第一行最后一个cell的编号 即总的列数
                if (isFirstRowColumn)//如果第一行是标题行
                {
                    for (int i = firstRow.FirstCellNum; i < cellCount; ++i)//第一行列数循环
                    {
                        DataColumn column = new DataColumn(firstRow.GetCell(i).StringCellValue);//获取标题
                        data.Columns.Add(column);//添加列
                    }
                    startRow = sheet.FirstRowNum + 1;//1(即第二行,第一行0从开始)
                }
                else
                {
                    startRow = sheet.FirstRowNum;//0
                }
                //最后一行的标号
                rowCount = sheet.LastRowNum;
                for (int i = startRow; i <= rowCount; ++i)//循环遍历所有行
                {
                    IRow row = sheet.GetRow(i);//第几行
                    if (row == null)
                    {
                        continue; //没有数据的行默认是null;
                    }
                    //将excel表每一行的数据添加到datatable的行中
                    DataRow dataRow = data.NewRow();
                    for (int j = row.FirstCellNum; j < cellCount; ++j)
                    {
                        if (row.GetCell(j) != null) //同理,没有数据的单元格都默认是null
                        {
                            dataRow[j] = row.GetCell(j).ToString();
                        }
                    }
                    data.Rows.Add(dataRow);
                }
            }
            return data;
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception: " + ex.Message);
            return null;
        }
    }
    #endregion

}
}

到了这里,关于VS2022 C# 读取 excel 2023年的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VS2022兼容.net framework 4.0等版本

    可参考 VS2022 安装 .NET Framework 4.0 和 .NET Framework 4.5 的方法_小歆Pro的博客-CSDN博客 前言2022年5月27日,刚刚把VS2019升级到了VS2022,安装时已经不提供.NET Framework 4.0和.NET Framework 4.5的目标框架了,打开VS也提示不支持目标框架。解决方法1、下载.NET Framework框架.NET Framework 4.5.2.NET F

    2024年02月05日
    浏览(72)
  • VS2022支持.net4.0和.net4.5SDK

    .net 4.5.1 sdk及以后的版本可以直接在微软下载:https://dotnet.microsoft.com/en-us/download/visual-studio-sdks .net 4.0 .net 4.5 sdk 可以通过VS2019安装时只勾选 .net framework 4目标包 .net framework 4.5目标包

    2024年02月15日
    浏览(57)
  • VS2022使用ClickOnce发布程序本地安装.net框架

    因为遇到下面的错误,没有在网上搜到详细解决问题的教程,费了一些时间才解决了问题,特此记录一下,也希望能帮助到其他人。  要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“.NET 桌面运行时 6.0.14 (x64)”项的文件“net6de

    2024年02月02日
    浏览(46)
  • WINDOWS11 + VS2022 安装.NET 4.0的方法

    因为需要编译老的框架源码,在不去升级框架的时候我们需要在 windows 11 操作系统上安装 .net framework 4.0,因为安装了 VS 2022 所以通过文件下载的文件包 dotNetFx40_Full_x86_x64.exe 无法安装如图(1): 图(1) 试过很多种方法依然无法解决,最终用了文件覆盖的方法进行操作可以解

    2024年02月04日
    浏览(48)
  • 使用 VS 2022 开发C#项目的tips

    拆分一个项目到多个文件 此操作的目的是,不把一个.cs文件写到一万米! Window窗体应用(WinForm): 直接参考这个: Visual Studio 拆分C#代码到多个cs文件。 控制台应用: VS2015如何在一个C#工程下,添加多个.cs文件。 具体操作流程: 右键项目名称-新建项-输入一个名字(可选

    2024年02月08日
    浏览(57)
  • VS2022 安装 .NET Framework 4.0 和 .NET Framework 4.5 的方法

    2022年5月27日,刚刚把VS2019升级到了VS2022,安装时已经不提供.NET Framework 4.0和.NET Framework 4.5的目标框架了,打开VS也提示不支持目标框架。 1、下载.NET Framework框架 .NET Framework 4.5.2 .NET Framework 4.5.1 .NET Framework 4.5 .NET Framework 4.0 备份链接:https://pan.baidu.com/s/1AIuva6GjGGKQ2XJftZpIyQ 提取码

    2024年02月12日
    浏览(60)
  • VS2022 和 VS2010 C#控制台输出 Hello World

    最后,一定将【 ✔ 】将解决方案和项目放在同一个目录中(D)的对勾点上,如上图。这个小习惯,对于以后程序的维护有好处。 Console.WriteLine(\\\"Hello World\\\");   代码输入完成以后,可以通过以下3种方法来运行。 1 、在菜单栏上选择 “ 调试 ”-“ 开始执行(不调试) ” 命令。

    2024年02月06日
    浏览(50)
  • 重新设置系统软件VS2022找不到.net framework路径

    为了安装软件,不直接安装在C盘,把默认路径设置在D盘,安装VS2022后,下载并安装.net framework 4.0,VS一直提示没有安装。 把下载的.net文件在C盘的: C:Program Files (x86)Reference AssembliesMicrosoftFramework 复制到D盘 D:Program Files (x86)Reference AssembliesMicrosoftFramework 重启VS就可以了。

    2024年02月13日
    浏览(51)
  • C#读取Excel文件

    使用C#读取excel文件,需要引用excel名称空间。以及DataSet数据集合,将Excel转入其中方便读写。例如下面这个方法,就是用于Excel表格中的信息。   获取了这张表的整体信息后,我们可以去尝试获取表的具体单元格信息。方法如下: 我们可以思考一下,为什么在游戏开发过程中

    2024年02月11日
    浏览(54)
  • VS2022 安装 .NET Framework 4.0或.NET Framework 4.5 以及其他版本

    VS2019升级到了VS2022之后,安装时已经不提供.NET Framework 4.0和.NET Framework 4.5的目标框架了,打开VS也提示不支持目标框架。 下载.NET Framework框架 官网下载对应版本的sdk:https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks?cid=getdotnetsdk 点击开发者工具包进行下载; 下载完之后直接双

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包