C#导出Excel的示例详解
介绍
在实际的项目中,我们经常需要将数据导出到Excel表格中,以方便查阅和管理。C#作为一门强大的编程语言,在导出Excel方面也有非常不错的表现。本篇文章将详细讲解如何使用C#导出Excel表格。
准备工作
我们需要使用C#自带的OpenXML
库来实现Excel的导出。在使用前,需要进行一些准备工作:
- 引入
DocumentFormat.OpenXML
库:
右击项目文件,在弹出的菜单中选择管理NuGet包
,搜索DocumentFormat.OpenXML
库并安装。
- 添加命名空间:
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
示例一
下面是一个简单的示例:将一个数组写入到Excel表格的第一行。
public static void WriteToExcel(string filePath)
{
//创建Excel文档
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook);
//创建工作簿
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
//创建工作表
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
//创建工作表名称
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
sheets.Append(sheet);
//写入数据
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
Row row = new Row();
int[] data = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < data.Length; i++)
{
Cell cell = new Cell();
cell.DataType = CellValues.Number;
cell.CellValue = new CellValue(data[i].ToString());
row.AppendChild(cell);
}
sheetData.AppendChild(row);
//保存Excel文档
workbookPart.Workbook.Save();
spreadsheetDocument.Close();
}
示例二
下面是另一个示例:将一个数据表写入到Excel表格中。
public static void WriteDataTableToExcel(DataTable dataTable, string filePath)
{
//创建Excel文档
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook);
//创建工作簿
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
//创建工作表
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
//创建工作表名称
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
sheets.Append(sheet);
//写入表头
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
Row headerRow = new Row();
foreach (DataColumn column in dataTable.Columns)
{
Cell cell = new Cell();
cell.DataType = CellValues.String;
cell.CellValue = new CellValue(column.ColumnName);
headerRow.AppendChild(cell);
}
sheetData.AppendChild(headerRow);
//写入数据
foreach (DataRow row in dataTable.Rows)
{
Row dataRow = new Row();
foreach (DataColumn column in dataTable.Columns)
{
Cell cell = new Cell();
cell.DataType = GetDataType(column.DataType);
cell.CellValue = new CellValue(row[column].ToString());
dataRow.AppendChild(cell);
}
sheetData.AppendChild(dataRow);
}
//保存Excel文档
workbookPart.Workbook.Save();
spreadsheetDocument.Close();
}
//获取数据类型
private static CellValues GetDataType(Type type)
{
if (type == typeof(DateTime))
{
return CellValues.Date;
}
else if (type == typeof(Boolean))
{
return CellValues.Boolean;
}
else if (type == typeof(double))
{
return CellValues.Number;
}
else
{
return CellValues.String;
}
}
总结
以上两个示例均为使用C#导出Excel表格的基本操作。需要注意的是,在实际的项目中,我们往往需要处理更加复杂的数据,这时需要对代码进行相应的扩展。但相信通过对以上两个示例的学习,读者可以轻松应对其他许多导出Excel的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#导出Excel的示例详解 - Python技术站