C# 常用Excel导出的几种常见方式及实现步骤

这篇具有很好参考价值的文章主要介绍了C# 常用Excel导出的几种常见方式及实现步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

常用Excel导出方式

1.使用 Microsoft Office Interop Excel 组件导出 Excel 文件

2.使用 NPOI 组件导出 Excel 文件

 3.使用 EPPlus 组件导出Excel文件

4. 使用 ClosedXML 组件导出 Excel 文件


常用Excel导出方式

在 C# 中,常用的Excel 文件导出 方式包括:

  1. 使用 Microsoft Office Interop Excel 组件:这是一种使用 Microsoft Excel 应用程序对象模型来创建和编辑 Excel 文件的方式。它提供了强大的功能,但需要安装 Microsoft Excel 或者 Microsoft Office 套件。

  2. 使用 NPOI 组件:NPOI 是一个 C#/.NET 平台上的开源组件,它可以读写 Microsoft Office 格式的文档,包括 Excel、Word 和 PowerPoint 等。相比于 Interop Excel 组件,NPOI 更加轻量级,不需要依赖于 Microsoft Excel 应用程序。

  3. 使用 EPPlus 组件:EPPlus 是一个免费的开源组件,它可以创建和读取 Excel 文件。它提供了一些方便的方法,如对单元格格式、图表、公式等进行操作。EPPlus 支持 .NET Framework 3.5 及更高版本,并不需要依赖于 Microsoft Excel 应用程序。

  4. 使用 ClosedXML 组件:ClosedXML 是一个简单易用的开源组件,它可以读取、创建和修改 Excel 文件。与 EPPlus 类似,它也提供了一些方便的方法来操纵 Excel 文件。ClosedXML 支持 .NET Framework 4.0 及更高版本。

以上是常用的几种 C# 导出 Excel 文件的方式,每种方式都有其特点和优缺点,选择适合自己需求的方式进行开发即可。以下针对每种导出方式,罗列了具体步骤以及Demo。

1.使用 Microsoft Office Interop Excel 组件导出 Excel 文件

使用 Microsoft Office Interop Excel 组件导出 Excel 文件的步骤如下:

  1. 引用 Microsoft.Office.Interop.Excel 命名空间:在项目中添加对 Microsoft.Office.Interop.Excel 的引用,或者使用 NuGet 包管理器安装它。

  2. 创建 Excel 应用程序对象:使用 Application 类创建一个 Excel 应用程序对象。

  3. 创建工作簿对象:使用 Application.Workbooks.Add() 方法创建一个新的工作簿对象。

  4. 获取工作表对象:使用 Workbook.Worksheets 属性获取工作表集合,并使用索引或名称获取工作表对象。

  5. 向单元格写入数据:使用 Worksheet.Cells 属性获取单元格对象,并使用 Range.Value 属性或 Range.Formula 属性向单元格写入数据。

  6. 保存 Excel 文件:使用 Workbook.SaveAs() 方法将 Excel 文件保存到磁盘。

  7. 关闭 Excel 应用程序和工作簿对象:使用 Workbook.Close() 方法关闭工作簿对象,并使用 Application.Quit() 方法关闭 Excel 应用程序对象。

  8. 释放资源:使用 Marshal.ReleaseComObject() 方法释放 Excel 应用程序对象和工作簿对象的资源。

下面是一个示例代码,演示如何使用 Microsoft Office Interop Excel 组件导出 Excel 文件:

using System;
using System.Data;
using System.IO;
using Microsoft.Office.Interop.Excel;

namespace ExportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 DataTable 对象来存储数据
            DataTable dataTable = new DataTable("MyData");

            // 添加列到 DataTable
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));

            // 向 DataTable 中添加数据行
            dataTable.Rows.Add("John Doe", 30);
            dataTable.Rows.Add("Jane Smith", 25);

            // 使用 Microsoft Office Interop Excel 组件导出 Excel 文件
            Application excelApp = new Application();
            Workbook workbook = excelApp.Workbooks.Add();
            Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
            int row = 1;
            foreach (DataRow dataRow in dataTable.Rows)
            {
                worksheet.Cells[row, 1] = dataRow["Name"].ToString();
                worksheet.Cells[row, 2] = dataRow["Age"];
                row++;
            }

            // 将 Excel 文件保存到磁盘
            string fileName = @"C:\temp\MyExcelFile.xlsx";
            workbook.SaveAs(fileName);

            // 关闭 Excel 应用程序和工作簿对象,并释放资源
            workbook.Close();
            excelApp.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
        }
    }
}

在这个示例代码中,我们使用 Application 类创建了一个 Excel 应用程序对象,并使用它来创建了一个新的工作簿对象。然后,我们使用 Workbook.Worksheets 属性获取工作表集合,并使用索引获取了第一个工作表对象。接下来,我们使用 Worksheet.Cells 属性获取单元格对象,并使用 Range.Value 属性或 Range.Formula 属性向单元格写入数据。最后,我们使用 Workbook.SaveAs() 方法将 Excel 文件保存到磁盘,关闭了工作簿对象和 Excel 应用程序对象,并释放了它们的资源。 

2.使用 NPOI 组件导出 Excel 文件

使用 NPOI 组件导出 Excel 文件的步骤如下:

  1. 引用 NPOI 命名空间:在项目中添加对 NPOI 的引用,或者使用 NuGet 包管理器安装它。

  2. 创建工作簿对象:使用 HSSFWorkbookXSSFWorkbook 类创建一个新的工作簿对象,分别对应于 Excel 的 .xls 和 .xlsx 格式。

  3. 获取工作表对象:使用 CreateSheet() 方法创建一个新的工作表对象,并设置工作表名称。

  4. 设置单元格样式:可以使用 CellStyle 类和 Font 类来设置单元格样式。

  5. 向单元格写入数据:使用 CreateRow() 方法创建一个新的行对象,使用 CreateCell() 方法创建一个新的单元格对象,并使用 SetValue() 方法向单元格写入数据。

  6. 保存 Excel 文件:使用 FileStream 类将 Excel 文件保存到磁盘。

  7. 释放资源:使用 Dispose() 方法释放工作簿对象和 FileStream 对象的资源。

下面是一个示例代码,演示如何使用 NPOI 组件导出 Excel 文件:

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

namespace ExportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 DataTable 对象来存储数据
            DataTable dataTable = new DataTable("MyData");

            // 添加列到 DataTable
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));

            // 向 DataTable 中添加数据行
            dataTable.Rows.Add("John Doe", 30);
            dataTable.Rows.Add("Jane Smith", 25);

            // 使用 NPOI 组件导出 Excel 文件
            IWorkbook workbook = new HSSFWorkbook();
            ISheet worksheet = workbook.CreateSheet("MySheet");
            int row = 0;
            foreach (DataRow dataRow in dataTable.Rows)
            {
                IRow newRow = worksheet.CreateRow(row);
                newRow.CreateCell(0).SetCellValue(dataRow["Name"].ToString());
                newRow.CreateCell(1).SetCellValue(Convert.ToInt32(dataRow["Age"]));
                row++;
            }

            // 将 Excel 文件保存到磁盘
            string fileName = @"C:\temp\MyExcelFile.xls";
            using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
            {
                workbook.Write(fs);
            }

            // 释放资源
            workbook.Dispose();
        }
    }
}
 

在这个示例代码中,我们使用 HSSFWorkbook 类创建了一个新的工作簿对象,并使用它来创建了一个名为 "MySheet" 的工作表对象。然后,我们使用 CreateRow() 方法和 CreateCell() 方法创建了新的行对象和单元格对象,并使用 SetValue() 方法向单元格写入数据。最后,我们使用 FileStream 类将 Excel 文件保存到磁盘,并使用 Dispose() 方法释放工作簿对象的资源。如果需要生成 .xlsx 格式的文件,可以使用 XSSFWorkbook 类代替 HSSFWorkbook 类。

 3.使用 EPPlus 组件导出Excel文件

使用 EPPlus 组件导出 Excel 文件的步骤如下:

  1. 引用 EPPlus 命名空间:在项目中添加对 EPPlus 的引用,或者使用 NuGet 包管理器安装它。

  2. 创建工作簿对象:使用 ExcelPackage 类创建一个新的工作簿对象。

  3. 获取工作表对象:使用 Workbook.Worksheets.Add() 方法创建一个新的工作表对象,并设置工作表名称。

  4. 设置单元格样式:可以使用 ExcelRange.Style 属性来设置单元格样式。

  5. 向单元格写入数据:使用 SetValue() 方法向单元格写入数据。

  6. 保存 Excel 文件:使用 ExcelPackage.SaveAs() 方法将 Excel 文件保存到磁盘。

  7. 释放资源:使用 Dispose() 方法释放工作簿对象的资源。

下面是一个示例代码,演示如何使用 EPPlus 组件导出 Excel 文件:

using System;
using System.Data;
using System.IO;
using OfficeOpenXml;

namespace ExportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 DataTable 对象来存储数据
            DataTable dataTable = new DataTable("MyData");

            // 添加列到 DataTable
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));

            // 向 DataTable 中添加数据行
            dataTable.Rows.Add("John Doe", 30);
            dataTable.Rows.Add("Jane Smith", 25);

            // 使用 EPPlus 组件导出 Excel 文件
            using (ExcelPackage excelPackage = new ExcelPackage())
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("MySheet");
                int row = 1;
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    worksheet.Cells[row, 1].Value = dataRow["Name"].ToString();
                    worksheet.Cells[row, 2].Value = Convert.ToInt32(dataRow["Age"]);
                    row++;
                }

                // 将 Excel 文件保存到磁盘
                string fileName = @"C:\temp\MyExcelFile.xlsx";
                FileInfo fileInfo = new FileInfo(fileName);
                excelPackage.SaveAs(fileInfo);
            }

            // 释放资源
        }
    }
}
 

在这个示例代码中,我们使用 ExcelPackage 类创建了一个新的工作簿对象,并使用它来创建了一个名为 "MySheet" 的工作表对象。然后,我们使用 Cells 属性获取单元格对象,并使用 SetValue() 方法向单元格写入数据。最后,我们使用 ExcelPackage.SaveAs() 方法将 Excel 文件保存到磁盘,并使用 Dispose() 方法释放工作簿对象的资源。

4. 使用 ClosedXML 组件导出 Excel 文件

使用 ClosedXML 组件导出 Excel 文件的步骤如下:

  1. 引用 ClosedXML 命名空间:在项目中添加对 ClosedXML 的引用,或者使用 NuGet 包管理器安装它。

  2. 创建工作簿对象:使用 XLWorkbook 类创建一个新的工作簿对象。

  3. 获取工作表对象:使用 AddWorksheet() 方法创建一个新的工作表对象,并设置工作表名称。

  4. 设置单元格样式:可以使用 IXLStyle 接口和 IXLFont 接口来设置单元格样式。

  5. 向单元格写入数据:使用 SetValue() 方法向单元格写入数据。

  6. 保存 Excel 文件:使用 SaveAs() 方法将 Excel 文件保存到磁盘。

  7. 释放资源:使用 Dispose() 方法释放工作簿对象的资源。

下面是一个示例代码,演示如何使用 ClosedXML 组件导出 Excel 文件:

using System;
using System.Data;
using System.IO;
using ClosedXML.Excel;

namespace ExportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 DataTable 对象来存储数据
            DataTable dataTable = new DataTable("MyData");

            // 添加列到 DataTable
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));

            // 向 DataTable 中添加数据行
            dataTable.Rows.Add("John Doe", 30);
            dataTable.Rows.Add("Jane Smith", 25);

            // 使用 ClosedXML 组件导出 Excel 文件
            using (XLWorkbook workbook = new XLWorkbook())
            {
                IXLWorksheet worksheet = workbook.AddWorksheet("MySheet");
                int row = 1;
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    worksheet.Cell(row, 1).Value = dataRow["Name"].ToString();
                    worksheet.Cell(row, 2).Value = Convert.ToInt32(dataRow["Age"]);

                    // 设置单元格样式
                    worksheet.Cell(row, 2).Style.Font.Bold = true;
                    worksheet.Cell(row, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right;

                    row++;
                }

                // 将 Excel 文件保存到磁盘
                string fileName = @"C:\temp\MyExcelFile.xlsx";
                workbook.SaveAs(fileName);
            }

            // 释放资源
        }
    }
}
 

在这个示例代码中,我们使用 XLWorkbook 类创建了一个新的工作簿对象,并使用它来创建了一个名为 "MySheet" 的工作表对象。然后,我们使用 Cell() 方法获取单元格对象,并使用 SetValue() 方法向单元格写入数据。接着,我们使用 IXLStyle 接口和 IXLFont 接口来设置单元格样式。最后,我们使用 SaveAs() 方法将 Excel 文件保存到磁盘,并使用 Dispose() 方法释放工作簿对象的资源。 文章来源地址https://www.toymoban.com/news/detail-464548.html

到了这里,关于C# 常用Excel导出的几种常见方式及实现步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 常用的几种服务器端口转发实现方式

    Windows和Linux服务器上实现端口转发的几种常用方式: 硬件路由器转发:这个是2种系统都可以使用的方式。可以通过在硬件路由器上设置端口转发规则,将外部请求转发到内部服务器的指定端口上。 以下为Linux系统实现端口转发的几种方式: iptables命令实现端口转发:iptable

    2024年02月09日
    浏览(44)
  • 35.MySQL导出数据的几种方式

    1.导出全表数据。 select * from test into outfile \\\'/tmp/a.sql\\\'; 2.导出某个数据库下的表。 --secure-file-priv=\\\'\\\'  mysqldump -T /data/backup -u root -prootroot --set-gtid-purged=OFF  test 将test数据库导出到:backup目录下。 3.导出自定义格式的文件。 mysql -uroot -prootroot -e \\\"select * from t2;\\\" test t2.sql  id    nam

    2024年02月04日
    浏览(49)
  • UNITY--读取Excel的几种方式

    目录 一.DLL插件读取 1.1.Excel存放位置 1.2.使用示例 1.3.Excel格式  1.4.输出显示  1.5.所需插件 二.Excel转成Asset文件,再进行读取 2.1Excel文件存放位置 2.2 编辑模式生成Asset文件,并保存到指定位置  2.3创建ExcelRead脚本,读取Excel内容 2.4 创建数据存储脚本 2.5  编辑器生成Asset 与属

    2024年01月20日
    浏览(55)
  • 常见的几种排序方式

    排序: 所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作 稳定性: 假定在待排序的记录序列中,存在多个具有相同的的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在

    2024年02月07日
    浏览(48)
  • 1685_Excel的几种脚本处理方式

    全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com) 做个小结,实际上是写的我自己学习的过程。 关于Excel的处理方式很多,我也不会那么多,在这里我只想写一下我自己接触过的。大致是三种方式:MATLAB、Perl以及Python。 MATLAB实际上调用了win32的接口,因此

    2023年04月22日
    浏览(36)
  • MySQL加密的几种常见方式

    MySQL提供了多种加密方式来保护数据的安全性。下面是几种常见的MySQL加密方式: 密码加密: MySQL5.7及以上版本使用SHA-256算法对密码进行加密。这种加密方式更安全,可以防止密码泄露。 之前的MySQL版本使用SHA-1算法进行密码加密。这种加密方式相对较弱,不建议使用。 数据

    2024年02月09日
    浏览(52)
  • 常见路由跳转的几种方式

    常见的路由跳转有以下四种: 1. router-link to=\\\"跳转路径\\\"  也可,如 2. this.$router.push() 跳转到指定的url,并在history中添加记录(即,点击回退,会退回上一个页面) 。 html中,如: 3. this.$router.replace() 跳转到指定的url, 但不会在history记录(即,点击回退 退回到上上个页) 4

    2024年02月10日
    浏览(43)
  • 使用Java将图片添加到Excel的几种方式

    使用POI,依赖如下 Java代码如下,运行该程序它会在桌面创建 ImageLinks.xlsx 文件。 点击它会自动打开浏览器访问设置的超链接 使用POI 下面是java代码 运行代码之后会在桌面生成文件 ExcelWithImage.xlsx 可以看到图片插入到了单元格中 但是尺寸太大了并且占了n行n列,下面设置成占

    2024年01月21日
    浏览(49)
  • 【Python】导入Excel数据表的几种方式

    如何导入csv、xlsx格式的Excel; 一张数据表里有多个sheet页,如何获取所有sheet页名字,并导入每张sheet页; 1. 导入CSV格式的Excel表: 2. 导入xlsx格式的Excel表: 如果Excel表里只有一个sheet页: 如果Excel表里有多个sheet页: 如果Excel表里sheet页过多:

    2024年02月03日
    浏览(51)
  • Java中常见的几种HttpClient调用方式

    一、HttpURLConnection调用 方式一: 方式二: 缺点:不能直接使用池化技术,需要自行处理输入输出流 二、apache common封装HttpClient 引入依赖 实现 三、CloseableHttpClient 可以使用连接池保持连接,并且过期自动释放。引入jar包 引入依赖 实现 非连接池连接: 四、OkHttp3 引入依赖 实

    2024年02月04日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包