【办公软件】C#调用NPOI实现Excel文件的加载、导出功能

这篇具有很好参考价值的文章主要介绍了【办公软件】C#调用NPOI实现Excel文件的加载、导出功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1. 引言

本文将介绍如何使用C#和NPOI库实现Excel文件的读写操作,并通过加载文件和导出文件的按钮进行封装。NPOI是一个强大的.NET库,可以轻松处理Excel文件。我们将学习如何使用NPOI打开现有的Excel文件、读取数据,并将数据写入到Excel文件中。

2. 环境准备

在开始之前,请确保已安装以下环境:

  • Visual Studio(任何版本)
  • NPOI库

3. 示例代码

下面是一个示例代码,演示了如何使用C#和NPOI实现Excel文件的读写操作,并封装在函数中,同时添加加载文件和导出文件的按钮:

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

class Program
{
    static void Main(string[] args)
    {
        Application.Run(new Form1());
    }
}

public class Form1 : Form
{
    private Button loadButton;
    private Button exportButton;
    private DataTable dataTable;

    public Form1()
    {
        loadButton = new Button();
        loadButton.Text = "加载文件";
        loadButton.Click += LoadButton_Click;

        exportButton = new Button();
        exportButton.Text = "导出文件";
        exportButton.Click += ExportButton_Click;

        Controls.Add(loadButton);
        Controls.Add(exportButton);
    }

    private void LoadButton_Click(object sender, EventArgs e)
    {
        OpenFileDialog openFileDialog = new OpenFileDialog();
        openFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx";
        openFileDialog.Title = "选择要加载的Excel文件";

        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
            string filePath = openFileDialog.FileName;
            dataTable = LoadExcelFile(filePath);
        }
    }

    private void ExportButton_Click(object sender, EventArgs e)
    {
        if (dataTable == null)
        {
            MessageBox.Show("请先加载Excel文件!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        SaveFileDialog saveFileDialog = new SaveFileDialog();
        saveFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx";
        saveFileDialog.Title = "选择要导出的Excel文件路径";

        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            string filePath = saveFileDialog.FileName;
            ExportExcelFile(filePath, dataTable);
        }
    }

    private DataTable LoadExcelFile(string filePath)
    {
        DataTable dataTable = new DataTable();
        FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read);
        XSSFWorkbook workbook = new XSSFWorkbook(file);
        ISheet sheet = workbook.GetSheetAt(0);

        // 读取表头
        IRow headerRow = sheet.GetRow(0);
        for (int i = 0; i < headerRow.LastCellNum; i++)
        {
            dataTable.Columns.Add(headerRow.GetCell(i).ToString());
        }

        // 读取数据
        for (int row = 1; row <= sheet.LastRowNum; row++)
        {
            IRow currentRow = sheet.GetRow(row);
            DataRow dataRow = dataTable.NewRow();
            for (int col = 0; col < currentRow.LastCellNum; col++)
            {
                dataRow[col] = currentRow.GetCell(col)?.ToString();
            }
            dataTable.Rows.Add(dataRow);
        }

        file.Close();
        Console.WriteLine("加载文件完成!");
        return dataTable;
    }

    private void ExportExcelFile(string filePath, DataTable dataTable)
    {
        XSSFWorkbook workbook = new XSSFWorkbook();
        ISheet sheet = workbook.CreateSheet("Sheet1");

        // 写入表头
        IRow headerRow = sheet.CreateRow(0);
        for (int i = 0; i < dataTable.Columns.Count; i++)
        {
            headerRow.CreateCell(i).SetCellValue(dataTable.Columns[i].ColumnName);
        }

        // 写入数据
        for (int row = 0; row < dataTable.Rows.Count; row++)
        {
            IRow newRow = sheet.CreateRow(row + 1);
            for (int col = 0; col < dataTable.Columns.Count; col++)
            {
                newRow.CreateCell(col).SetCellValue(dataTable.Rows[row][col]?.ToString());
            }
        }

        FileStream writeFile = new FileStream(filePath, FileMode.Create, FileAccess.Write);
        workbook.Write(writeFile);
        writeFile.Close();

        Console.WriteLine("导出文件完成!");
    }
}

4. 结果

运行代码后,将能够通过加载文件按钮选择要加载的Excel文件,并在控制台中显示文件中的数据。同时,还可以通过导出文件按钮选择要导出的Excel文件路径,并将数据写入到文件中。

5. 总结

本文介绍了如何使用C#和NPOI库实现Excel文件的读写操作,并通过加载文件和导出文件的按钮进行封装。通过使用NPOI的API,我们可以轻松地处理Excel文件,读取其中的数据并进行写入。希望本文对你有所帮助!文章来源地址https://www.toymoban.com/news/detail-740404.html

到了这里,关于【办公软件】C#调用NPOI实现Excel文件的加载、导出功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Office办公软件介绍

    1:办公自动化office automation简称oa是将现代化办公和计算机网络功能结合在一起的一种新型办公方式。 2:会办公自动化的意义  提高工作效率,节省运营成本,规范公司管理,提升公司竞争力,凝聚力,使决策变得迅速科学 3:常用办公软件有哪些? 目前,最广泛的办公软件

    2024年02月12日
    浏览(44)
  • 办公软件ppt的制作

    毕业找工作太难了,赶紧多学点什么东西吧,今天开始办公软件ppt的制作学习。 本文以WPS作为默认办公软件,问为什么不是PowerPoint,问就是没钱买不起,绝对不是不会破解的原因。 在快捷工具栏中顾名思义就是一些快捷操作,其中默认已经给我们添加了一些操作,其中在它

    2024年02月16日
    浏览(48)
  • office办公软件安装教程

    以office2010为例;相信对于初来乍到的人来说还是有一定难度的。让我们了解一下如何在边肖上安装office2010    office各个版本下   安装office2010的步骤如下: 步骤1:下载Microsoft Office 2010专业增强版 第二步:解压后点击:SETUP进行安装。   附上安装界面   步骤三:勾选:我接受

    2024年01月17日
    浏览(58)
  • 办公软件入门--word01

     使用的软件为:wps  office 目录 一,概述  二,word的特点 1,所见即所得 2,丰富的混排 三,word的操作         1,字体样式设置         2,视图      1)阅读版式       2)写作模式      ”统计“        \\\"素材推荐\\\"       “文档校对”【会员专属】       “导航

    2024年02月05日
    浏览(49)
  • 企业应如何选择协同办公软件

    OA协同办公管理软件将组织内的人、物、信息等资源集中于同一运营平台,对企业各环节进行协同优化,从而提高企业的管理效率和规范化流程。随着信息化的推进,OA系统在企业运营中发挥价值很大。无论从集成融合能力、快速连接能力还是对企业自身的积淀与传承能力来讲

    2024年02月11日
    浏览(43)
  • Office办公软件测试题

    一、单选题 1.要将一篇文档中,所有的\\\"微软\\\"都被录入员误输为\\\"徽软\\\",如何最快捷地改正()。 A.用[定位]命令 B.用[开始]菜单中的[替换]命令 C.单击[复制],再在插入点单击[粘贴] D.用插入光标逐字查找,分别改正 2.在表格中一次性插入3行,正确的方法是()。 A.选择[表格

    2024年02月11日
    浏览(58)
  • 某开源远程办公软件安装配置说明

    ****** 是开源软件,只需要简单的配置,就可以在企业搭建SSL VPN,满足日常远程办公的需求。本篇文档为在windows服务器安装搭建openvpn记录,仅供参考。 拓扑说明 使用虚拟机进行测试,主机操作系统Windows 10和m0n0。模拟拓扑:内网主机(openvpn server)、m0n0wall、外网主机(ope

    2024年02月15日
    浏览(48)
  • 学生怎么免费领取office办公软件?

    近些年,随着国内软件的发展,国内兴起多款免费的office办公软件,很多功能都是根据国人的使用习惯设置的,进而慢慢取代了微软office的地位。今天就和大家分享一个,使用体验不错的office软件,不管是学生,上班族,企事业单位均可免费使用,界面简洁,操作起来简单好

    2024年02月13日
    浏览(117)
  • 金山办公和金山软件是同一家公司?复盘金山办公成长史 | 云计算

    文 | 科技周竖人 欢迎关注同名公众号 本文主要回答以下几个问题:金山办公这些年都在做些什么,如何成为了国内为数不多的较纯的云计算SaaS上市公司?金山软件和金山办公到底是不是一家公司?这两家公司到底什么关系?金山和雷军的关系是什么? 金山办公的发展史可以

    2024年02月05日
    浏览(54)
  • Office协同办公讲解以及软件归纳

    对于企业/组织/个人开展的工作项目中,或多或少都与office软件打交道,有些人就会说“office办公就办公,需要文件的话,我复制多几份不就可以了嘛,为什么还要协同办公呢,这不是多余的吗?”,更有甚者说“如果都是协同办公,那么我的隐私文件怎么办?”。 下面,小

    2024年02月06日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包