当前位置:首页 > 行业动态 > 正文

C#导出数据到Excel文件的方法

摘要:C#导出数据到Excel文件的方法包括使用第三方库如EPPlus、NPOI等,通过这些库可以方便地创建和操作Excel文件,实现数据的导出。

在C#中,将数据导出到Excel文件是一个常见的任务,通常可以通过使用第三方库如EPPlus、NPOI或ClosedXML来实现,以下是几种常见的方法:

使用EPPlus库

EPPlus是一个功能强大的Excel操作库,支持创建和读取Excel文件。

步骤:

1、安装EPPlus库:

 dotnet add package EPPlus

2、编写代码导出数据到Excel文件:

 using System;
   using System.Collections.Generic;
   using OfficeOpenXml;
   using System.IO;
   class Program
   {
       static void Main()
       {
           var data = new List<List<string>>
           {
               new List<string> { "ID", "Name", "Age" },
               new List<string> { "1", "John Doe", "30" },
               new List<string> { "2", "Jane Smith", "25" }
           };
           using (var package = new ExcelPackage())
           {
               var worksheet = package.Workbook.Worksheets.Add("Sheet1");
               for (int i = 0; i < data.Count; i++)
               {
                   for (int j = 0; j < data[i].Count; j++)
                   {
                       worksheet.Cells[i + 1, j + 1].Value = data[i][j];
                   }
               }
               var filePath = "DataExport.xlsx";
               if (File.Exists(filePath))
               {
                   File.Delete(filePath);
               }
               package.SaveAs(new FileInfo(filePath));
           }
           Console.WriteLine("Data exported to Excel successfully!");
       }
   }

使用NPOI库

NPOI是另一个强大的库,用于处理Excel文件。

步骤:

C#导出数据到Excel文件的方法

1、安装NPOI库:

 dotnet add package NPOI

2、编写代码导出数据到Excel文件:

 using System;
   using System.Collections.Generic;
   using NPOI.SS.UserModel;
   using NPOI.XSSF.UserModel;
   using System.IO;
   class Program
   {
       static void Main()
       {
           var data = new List<List<string>>
           {
               new List<string> { "ID", "Name", "Age" },
               new List<string> { "1", "John Doe", "30" },
               new List<string> { "2", "Jane Smith", "25" }
           };
           IWorkbook workbook = new XSSFWorkbook();
           ISheet sheet = workbook.CreateSheet("Sheet1");
           for (int i = 0; i < data.Count; i++)
           {
               IRow row = sheet.CreateRow(i);
               for (int j = 0; j < data[i].Count; j++)
               {
                   row.CreateCell(j).SetCellValue(data[i][j]);
               }
           }
           var filePath = "DataExport.xlsx";
           using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
           {
               workbook.Write(fileStream);
           }
           Console.WriteLine("Data exported to Excel successfully!");
       }
   }

使用ClosedXML库

ClosedXML是一个简单易用的Excel操作库。

步骤:

1、安装ClosedXML库:

C#导出数据到Excel文件的方法

 dotnet add package ClosedXML

2、编写代码导出数据到Excel文件:

 using System;
   using System.Collections.Generic;
   using ClosedXML.Excel;
   using System.IO;
   class Program
   {
       static void Main()
       {
           var data = new List<List<string>>
           {
               new List<string> { "ID", "Name", "Age" },
               new List<string> { "1", "John Doe", "30" },
               new List<string> { "2", "Jane Smith", "25" }
           };
           using (var workbook = new XLWorkbook())
           {
               var worksheet = workbook.Worksheets.Add(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(1) + " " + DateTime.Now.Year);
               var currentRow = 1;
               foreach (var row in data)
               {
                   var currentCell = 1;
                   foreach (var cell in row)
                   {
                       worksheet.Cell(currentRow, currentCell).Value = cell;
                       currentCell++;
                   }
                   currentRow++;
               }
               var filePath = "DataExport.xlsx";
               workbook.SaveAs(filePath);
           }
           Console.WriteLine("Data exported to Excel successfully!");
       }
   }

相关问答FAQs

Q: EPPlus、NPOI和ClosedXML有什么区别?

A: EPPlus和ClosedXML主要用于创建和操作Excel文件,功能较为全面且易于使用,NPOI则更偏向于处理较老版本的Excel文件(如.xls),并且在某些高级功能上可能不如前两者强大,选择哪个库主要取决于具体需求和项目环境。

Q: 如何选择合适的Excel操作库?

A: 选择Excel操作库时需要考虑以下几点:

C#导出数据到Excel文件的方法

功能需求:如果需要处理复杂的Excel文件,建议选择功能全面的库如EPPlus或ClosedXML。

文件格式:如果需要处理旧版Excel文件(.xls),NPOI是更好的选择,对于新版Excel文件(.xlsx),EPPlus和ClosedXML都是不错的选择。

性能要求:对于大规模数据处理,ClosedXML的性能可能更优。

社区支持和文档:选择有良好社区支持和详细文档的库,可以更容易地解决问题和学习使用。

小编有话说

在选择适合的Excel操作库时,务必考虑项目的具体需求和开发环境,EPPlus、NPOI和ClosedXML各有优缺点,合理选择可以提高开发效率和代码质量,希望本文能帮助你更好地理解和应用这些库,顺利完成数据导出任务。