C# Winform实现导入和导出Excel文件

让我为你详细解释一下“C# Winform实现导入和导出Excel文件”的完整攻略。

1. 需要用到的Nuget包

在C# Winform应用程序中,需要先安装Excel处理的Nuget包,在Visual Studio的Nuget包管理器中搜索NPOI,找到NPOI这个包,安装即可。

2. 导入Excel文件

下面是一个简单的示例程序,用于从Excel文件中读取数据并在控制台上输出。

using System;
using System.Data;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

namespace ImportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 指定Excel文件路径
            string filePath = "test.xlsx";

            // 创建文件流对象
            FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);

            // 创建工作簿对象
            XSSFWorkbook workbook = new XSSFWorkbook(fs);

            // 获取第一个工作表
            XSSFSheet sheet = (XSSFSheet)workbook.GetSheetAt(0);

            // 遍历所有行,获取单元格数据并输出到控制台
            for (int i = 0; i <= sheet.LastRowNum; i++)
            {
                XSSFRow row = (XSSFRow)sheet.GetRow(i);
                if (row == null)
                    continue;

                for (int j = 0; j < row.LastCellNum; j++)
                {
                    XSSFCell cell = (XSSFCell)row.GetCell(j);
                    Console.Write(cell.ToString() + "\t");
                }
                Console.WriteLine();
            }

            // 关闭文件流
            fs.Close();
        }
    }
}

这个示例程序使用NPOI库读取Excel文件中的所有数据,并在控制台上输出。需要注意的是,示例程序中的test.xlsx文件需要与程序放在同一目录下。

3. 导出Excel文件

下面是一个简单的示例程序,用于将数据写入Excel文件并保存到本地。

using System;
using System.Data;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

namespace ExportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建工作簿对象
            XSSFWorkbook workbook = new XSSFWorkbook();

            // 创建工作表对象
            XSSFSheet sheet = (XSSFSheet)workbook.CreateSheet("Sheet1");

            // 添加列名
            XSSFRow headerRow = (XSSFRow)sheet.CreateRow(0);
            headerRow.CreateCell(0).SetCellValue("Name");
            headerRow.CreateCell(1).SetCellValue("Age");
            headerRow.CreateCell(2).SetCellValue("Gender");

            // 添加数据
            for (int i = 1; i <= 10; i++)
            {
                XSSFRow dataRow = (XSSFRow)sheet.CreateRow(i);
                dataRow.CreateCell(0).SetCellValue("张三" + i.ToString());
                dataRow.CreateCell(1).SetCellValue(i);
                dataRow.CreateCell(2).SetCellValue("男");
            }

            // 保存Excel文件到本地
            string filePath = "test.xlsx";
            FileStream fs = new FileStream(filePath, FileMode.Create);
            workbook.Write(fs);
            fs.Close();

            Console.WriteLine("文件保存成功!");
        }
    }
}

这个示例程序创建了一个简单的数据表,并写入Excel文件,将文件保存到本地。需要注意的是,示例程序中的test.xlsx文件会被覆盖,因此需要做好备份。

希望这些示例程序能对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Winform实现导入和导出Excel文件 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • Visual Studio 未能加载各种Package包的解决方案

    Visual Studio无法加载Package解决方案错误的完整攻略 在使用Visual Studio时,你可能会遇到“未能加载各种Package包”的错误提示。这种情况通常是由于Visual Studio无法找到或加载所需的NuGet Package,而导致的。下面是解决此问题的完整攻略。 步骤一:查看Package控制台 在Visual Studio中…

    C# 2023年5月15日
    00
  • C#对象为Null模式(Null Object Pattern)实例教程

    C#对象为Null模式(Null Object Pattern)实例教程 介绍 在C#中,经常需要处理对象是否为null的情况。在编写代码时,我们通常会使用”if(null)”这样的条件语句进行处理。然而,这种处理方式复杂度较高,容易出错。通过Null Object Pattern模式,我们可以将对象的null值进行抽象化,简化代码编写。 实现 方案一:使用…

    C# 2023年5月31日
    00
  • 在阿里云函数计算上部署.NET Core 3.1的方法

    在阿里云函数计算上部署.NET Core 3.1的方法 阿里云函数计算是一种事件驱动的计算服务,可以让您以更低的成本和更高的效率运行代码。本攻略将详细介绍如何在阿里云函数计算上部署.NET Core 3.1应用程序。 准备工作 在开始之前,您需要完成以下准备工作: 注册阿里云账号,并开通函数计算服务。 安装.NET Core 3.1 SDK。 步骤 按照以下…

    C# 2023年5月16日
    00
  • IIS下调用证书出现异常的解决方法 (C#)

    针对“IIS下调用证书出现异常的解决方法(C#)”这个问题,我来给出一份完整的攻略,步骤如下: 步骤一:检查证书是否安装正确 在IIS服务器上,需要将证书正确地安装并且匹配相应的网站。所以,第一步是确保证书在服务器上正确地安装了,以及是否与网站匹配。如果证书未正确安装或匹配,将会出现调用证书异常的问题。你可以通过以下步骤来检查证书是否安装正确: 打开IIS …

    C# 2023年5月15日
    00
  • ASP.NET Core对不同类型的用户进行区别限流详解

    在ASP.NET Core中,您可以使用限流来控制对不同类型的用户的访问速率。本攻略将深入探讨如何使用ASP.NET Core对不同类型的用户进行区别限流,并提供两个示例说明。 区别限流 区别限流是指根据用户类型、请求类型、请求频率等因素,对不同类型的用户进行不同的限流策略。例如,对于普通用户,我们可以设置较低的请求速率限制,而对于VIP用户,我们可以设置较…

    C# 2023年5月17日
    00
  • C# Path.GetFileName – 获取路径中的文件名部分

    Path.GetFileName 方法是 .NET Framework 中提供的一个用于获取路径中文件名的静态方法,主要用于从路径中获取文件名,也可用于处理文件路径字符串,它位于 System.IO 命名空间中。 以下是该方法的作用: 获取给定路径字符串中的文件名。 通过计算要从中返回的位置的字符数,以及路径分隔符(注意:Windows 和 .NET 中的路…

    C# 2023年4月19日
    00
  • C# Linq的SkipWhile()方法 – 跳过序列中的元素,直到某个元素不满足

    下面是关于 C# Linq 的 SkipWhile() 的完整攻略。 SkipWhile() 简介 SkipWhile() 方法是 C# Linq 中的一种用来过滤序列的方法,其参数为一个带有一个参数和一个返回bool类型的委托,该委托定义了决定跳过哪些元素的方法。SkipWhile() 方法会跳过序列中开头符合条件的元素,直到遇到第一个不符合条件的元素为止…

    C# 2023年4月19日
    00
  • AutoCAD二次开发系列教程01-如何在AutoCAD中输出Hello World

    目录 01项目环境准备 02代码示例 03输出示例 04总结 05源码地址 01项目环境准备 A.开发使用的软件:AutoCAD2016、VisualStudio2022 B.建立依赖的本地库(提前从AutoCAD软件安装目录拷贝开发时需要使用的库,如:accoremgd.dll) C.创建新的类库(.Net Framework),注意不同AutoCAD版本…

    C# 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部