目录
1.使用 Microsoft Office Interop Excel 组件导出 Excel 文件
在 C# 中,常用的Excel 文件导出 方式包括:
以上是常用的几种 C# 导出 Excel 文件的方式,每种方式都有其特点和优缺点,选择适合自己需求的方式进行开发即可。以下针对每种导出方式,罗列了具体步骤以及Demo。
使用 Microsoft Office Interop Excel 组件导出 Excel 文件的步骤如下:
Application
类创建一个 Excel 应用程序对象。Application.Workbooks.Add()
方法创建一个新的工作簿对象。Workbook.Worksheets
属性获取工作表集合,并使用索引或名称获取工作表对象。Worksheet.Cells
属性获取单元格对象,并使用 Range.Value
属性或 Range.Formula
属性向单元格写入数据。Workbook.SaveAs()
方法将 Excel 文件保存到磁盘。Workbook.Close()
方法关闭工作簿对象,并使用 Application.Quit()
方法关闭 Excel 应用程序对象。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 应用程序对象,并释放了它们的资源。
使用 NPOI 组件导出 Excel 文件的步骤如下:
HSSFWorkbook
或 XSSFWorkbook
类创建一个新的工作簿对象,分别对应于 Excel 的 .xls 和 .xlsx 格式。CreateSheet()
方法创建一个新的工作表对象,并设置工作表名称。CellStyle
类和 Font
类来设置单元格样式。CreateRow()
方法创建一个新的行对象,使用 CreateCell()
方法创建一个新的单元格对象,并使用 SetValue()
方法向单元格写入数据。FileStream
类将 Excel 文件保存到磁盘。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
类。
使用 EPPlus 组件导出 Excel 文件的步骤如下:
ExcelPackage
类创建一个新的工作簿对象。Workbook.Worksheets.Add()
方法创建一个新的工作表对象,并设置工作表名称。ExcelRange.Style
属性来设置单元格样式。SetValue()
方法向单元格写入数据。ExcelPackage.SaveAs()
方法将 Excel 文件保存到磁盘。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()
方法释放工作簿对象的资源。
使用 ClosedXML 组件导出 Excel 文件的步骤如下:
XLWorkbook
类创建一个新的工作簿对象。AddWorksheet()
方法创建一个新的工作表对象,并设置工作表名称。IXLStyle
接口和 IXLFont
接口来设置单元格样式。SetValue()
方法向单元格写入数据。SaveAs()
方法将 Excel 文件保存到磁盘。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()
方法释放工作簿对象的资源。
原网址: 访问
创建于: 2024-06-19 09:10:38
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
最新评论