C# 导出Excel的6种简单方法实现

下面开始详细讲解“C# 导出Excel的6种简单方法实现”的完整攻略。

准备工作

在进行下面操作之前,我们需要下载并安装EPPlus包。EPPlus是一个开源的Excel类库,它允许我们在C#中轻松访问和修改Excel文件。你可以从NuGet官网下载EPPlus包。

方法一:使用Microsoft.Office.Interop.Excel

Microsoft.Office.Interop.Excel是一个Microsoft.Office.Interop程序集,它提供一个C# API来编写Excel文件。为了能够使用它,我们需要先在项目中添加对“Microsoft.Office.Interop.Excel”的引用。

下面的代码演示了如何使用Microsoft.Office.Interop.Excel导出Excel:

using Microsoft.Office.Interop.Excel;

public void ExportToExcel()
{
    Application excelApp = new Application();
    Workbook excelDoc = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);

    Worksheet excelSheet = (Worksheet)excelDoc.Worksheets[1];
    excelSheet.Cells[1, 1].Value = "这是第一行第一列的值";
    excelSheet.Cells[1, 2].Value = "这是第一行第二列的值";

    excelDoc.SaveAs("C:\\Temp\\ExportTest.xlsx");

    excelDoc.Close();
    excelApp.Quit();
}

方法二:使用NPOI

NPOI是一个开源的.NET类库,它提供了一组用于处理Office文档的API。与Microsoft.Office.Interop.Excel相比,NPOI提供了更好的性能和更容易使用的API。

下面的代码演示了如何使用NPOI导出Excel:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

public void ExportToExcel()
{
    IWorkbook excelDoc = new XSSFWorkbook();

    ISheet excelSheet = excelDoc.CreateSheet("Sheet1");
    IRow excelRow = excelSheet.CreateRow(0);

    ICell cell1 = excelRow.CreateCell(0);
    cell1.SetCellValue("这是第一行第一列的值");

    ICell cell2 = excelRow.CreateCell(1);
    cell2.SetCellValue("这是第一行第二列的值");

    using (FileStream file = new FileStream("C:\\Temp\\ExportTest.xlsx", FileMode.Create, FileAccess.Write))
    {
        excelDoc.Write(file);
    }
}

方法三:使用EPPlus

EPPlus是一个基于OpenXML格式的.NET类库,它提供了一组用于处理Excel文件的API。与Microsoft.Office.Interop.Excel和NPOI相比,EPPlus提供了更好的性能和更容易使用的API。

下面的代码演示了如何使用EPPlus导出Excel:

using OfficeOpenXml;

public void ExportToExcel()
{
    ExcelPackage excelDoc = new ExcelPackage();

    ExcelWorksheet excelSheet = excelDoc.Workbook.Worksheets.Add("Sheet1");
    excelSheet.Cells[1, 1].Value = "这是第一行第一列的值";
    excelSheet.Cells[1, 2].Value = "这是第一行第二列的值";

    FileInfo fileInfo = new FileInfo("C:\\Temp\\ExportTest.xlsx");
    excelDoc.SaveAs(fileInfo);
}

方法四:使用OpenXml

OpenXml是微软的Office开放式XML文档格式规范的实现,它提供了一组用于创建和修改Office文档的API。在使用OpenXml之前,我们需要先在项目中添加对Microsoft.OpenXml的引用。

下面的代码演示了如何使用OpenXml导出Excel:

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

public void ExportToExcel()
{
    SpreadsheetDocument excelDoc = SpreadsheetDocument.Create("C:\\Temp\\ExportTest.xlsx", SpreadsheetDocumentType.Workbook);

    WorkbookPart workbookPart = excelDoc.AddWorkbookPart();

    Workbook workbook = new Workbook();
    workbookPart.Workbook = workbook;

    Sheets sheets = new Sheets();
    Sheet sheet = new Sheet() { Name = "Sheet1", SheetId = 1, Id = workbookPart.GetIdOfPart(workbookPart.AddNewPart<WorksheetPart>()) };
    sheets.Append(sheet);

    WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
    Worksheet worksheet = new Worksheet();
    SheetData sheetData = new SheetData();
    Row row = new Row() { RowIndex = 1 };
    Cell cell1 = new Cell() { CellReference = "A1" };
    cell1.CellValue = new CellValue("这是第一行第一列的值");
    row.Append(cell1);
    Cell cell2 = new Cell() { CellReference = "B1" };
    cell2.CellValue = new CellValue("这是第一行第二列的值");
    row.Append(cell2);
    sheetData.Append(row);
    worksheet.Append(sheetData);
    worksheetPart.Worksheet = worksheet;

    workbook.Save();
    excelDoc.Close();
}

方法五:使用GemBox.Spreadsheet

GemBox.Spreadsheet是一个商业级的Excel类库,它提供了一组用于处理Excel文件的高级API。与其他程序集相比,GemBox.Spreadsheet提供了更加强大、灵活的API,以及更好的性能与更广泛的Excel版本支持。

下面的代码演示了如何使用GemBox.Spreadsheet导出Excel:

using GemBox.Spreadsheet;

public void ExportToExcel()
{
    SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
    ExcelFile excelDoc = new ExcelFile();

    ExcelWorksheet excelSheet = excelDoc.Worksheets.Add("Sheet1");
    excelSheet.Cells[0, 0].Value = "这是第一行第一列的值";
    excelSheet.Cells[0, 1].Value = "这是第一行第二列的值";

    excelDoc.Save("C:\\Temp\\ExportTest.xlsx");
}

方法六:使用Aspose.Cells

Aspose.Cells是一个商业级的Excel类库,它提供了一组用于处理Excel文件的高级API。与其他程序集相比,Aspose.Cells提供了更加强大、灵活的API,以及更好的性能和更广泛的Excel版本支持。

下面的代码演示了如何使用Aspose.Cells导出Excel:

using Aspose.Cells;

public void ExportToExcel()
{
    Workbook excelDoc = new Workbook();

    Worksheet excelSheet = excelDoc.Worksheets[0];
    excelSheet.Cells[0, 0].Value = "这是第一行第一列的值";
    excelSheet.Cells[0, 1].Value = "这是第一行第二列的值";

    excelDoc.Save("C:\\Temp\\ExportTest.xlsx");
}

以上就是“C# 导出Excel的6种简单方法实现”的完整攻略。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 导出Excel的6种简单方法实现 - Python技术站

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

相关文章

  • C# DataTable 转换为 实体类对象实例

    将C# DataTable转换为实体类对象实例是一个很常见的操作,下面是详细的攻略。 步骤一:创建实体类 首先创建一个实体类,其中的属性需要与DataTable里面的字段名称和数据类型一一对应。 public class Person { public int Id { get; set; } public string Name { get; set; }…

    C# 2023年6月1日
    00
  • C# 事件的设计与使用深入理解

    C# 事件的设计与使用深入理解 1. 什么是C#事件 在C#中,事件是一种方法,这个方法是用来通知外部程序有某个特定的操作已经发生,以便订阅该事件的程序或方法可以做出相应的响应。事件是C#程序中基于委托的重要机制。 2. C#事件的设计 C#事件的设计包含两个主要部分: 2.1 事件发送者(Publisher) 事件发送者是指负责触发事件的对象,它需要满足以…

    C# 2023年5月31日
    00
  • Netcore磊科路由器无线MAC地址过滤图解教程

    Netcore磊科路由器无线MAC地址过滤图解教程如下: 步骤一:登录路由器 首先,需要登录到 Netcore 磊科路由器的管理界面。在浏览器中输入路由器的 IP 地址,然后输入用户名和密码进行登录。 步骤二:进入无线设置页面 在登录成功后,进入路由器的无线设置页面。在页面中找到“MAC地址过滤”选项,并点击进入。 步骤三:启用MAC地址过滤 在“MAC地址…

    C# 2023年5月17日
    00
  • C#读取数据库返回泛型集合详解(DataSetToList)

    C#读取数据库返回泛型集合是一种常见的数据访问方式,可以快速、高效地将数据库里的数据以泛型集合的方式返回给程序,本文将详细讲解如何使用DataSetToList实现这一功能。 准备工作 在使用DataSetToList读取数据库前,需要进行一些准备工作,具体如下: 1.引用相关命名空间 在代码文件中,需要引用以下命名空间: using System.Data…

    C# 2023年5月31日
    00
  • aspnet_isapi.dll设置图文方法.net程序实现伪静态

    下面我将为您详细讲解“aspnet_isapi.dll设置图文方法.net程序实现伪静态”的完整攻略。 什么是ASP.NET伪静态? ASP.NET伪静态,简单说就是通过修改URL结构来优化网站,让搜索引擎更好地抓取和检索。原始URL包含参数和动态标识,而ASP.NET伪静态通过修改URL结构,将参数转换为目录形式,将动态标识转换为静态标识,从而实现网页地址…

    C# 2023年6月6日
    00
  • C#中的GDI+图像编程详解

    “C#中的GDI+图像编程详解”是一篇介绍了GDI+在C#中的应用的技术文章,在文章中,作者详细讲述了如何使用GDI+来进行图像编程,包括图像的读取、处理、绘制等。 文章的主要内容包括: GDI+的概念及其在C#中的应用 GDI+是Windows操作系统中的图形设备接口,它可以被用于图像的读取、处理、绘制。在C#中,可以通过使用.NET框架来调用GDI+库的…

    C# 2023年5月31日
    00
  • .net core 中 WebApiClientCore的使用示例代码

    以下是关于“.NET Core中WebApiClientCore的使用示例代码”的完整攻略: 1. 什么是WebApiClientCore? WebApiClientCore是一个.NET的HTTP客户端库,它提供了一种简单的方式来调用Web API。WebApiClientCore支同步和异步调用,并提了一些有用的功能,例如自动序列化和反序列化JSON数据…

    C# 2023年5月12日
    00
  • vs2019 实现C#调用c++的dll两种方法

    vs2019 实现C#调用c++的dll两种方法 本文主要介绍使用vs2019实现C#调用c++的dll两种方法。 方法一:使用DllImport 编写C++动态链接库 cpp // cppdll.h extern “C” __declspec(dllexport) int add(int a, int b); cpp // cppdll.cpp int a…

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