C#写一个传入dataset和保存路径的方法, 将dataset导出成excel的,导出的excel内容进行美化
时间: 2024-10-22 15:05:03 浏览: 19
在C#中,你可以使用Epplus库(基于NPOI的一个轻量级解决方案),结合DataSet对象来实现Excel文件的导出。以下是一个简单的示例,展示如何创建一个方法,接收DataSet和保存路径,然后美化输出的Excel:
```csharp
using OfficeOpenXml;
using System.Data;
public void ExportDataSetToExcel(DataSet dataSet, string filePath)
{
// 创建一个新的ExcelPackage对象
using (var package = new ExcelPackage(new FileInfo(filePath)))
{
// 获取当前活动的工作表
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 写入标题行
for (int i = 0; i < dataSet.Tables[0].Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = dataSet.Tables[0].Columns[i].ColumnName;
}
// 从DataSet中逐行读取数据并写入工作表
foreach (DataRow row in dataSet.Tables[0].Rows)
{
for (int j = 0; j < row.ItemArray.Length; j++)
{
worksheet.Cells[row.RowNumber + 2, j + 1] = row[j];
}
}
// 设置单元格样式以美化输出(这里仅示例,可根据实际需求调整)
var headerStyle = package.GetStyle("Header");
for (int i = 1; i <= worksheet.Dimension.End.Column; i++)
{
worksheet.Cells[1, i].Style = headerStyle;
}
// 添加边框和填充色
worksheet.Cells["A1:D10"].AutoFitColumns();
worksheet.Cells[1, 1, 1, worksheet.Dimension.End.Column].Border线条样式 = ExcelBorderStyle.Thick;
worksheet.Cells["A1:D10"].Interior.PatternType = ExcelPatternType.Solid;
worksheet.Cells["A1:D10"].Interior.Color = ExcelColor.LightBlue;
}
}
```
在这个示例中,我们首先创建了一个ExcelPackage实例,然后添加了一张新的工作表。接着,我们遍历DataSet的表格,将列名作为标题行写入,并将数据逐行插入。最后,我们设置了头几行和特定区域的单元格样式,如粗体、填充颜色等,以达到美化效果。
阅读全文