首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用c#将数据表导出到Excel时格式化表格

使用C#将数据表导出到Excel时,可以通过使用第三方库来实现。其中比较常用的库有NPOI、EPPlus和ClosedXML。

  1. NPOI(https://github.com/tonyqus/npoi)是一个开源的.NET库,用于处理Microsoft Office格式文件。它支持读写Excel、Word和PowerPoint文件。使用NPOI,可以通过以下步骤将数据表导出到Excel并格式化表格:

a. 引用NPOI库,并添加命名空间using NPOI.HSSF.UserModel和using NPOI.SS.UserModel。

b. 创建一个Workbook对象,例如HSSFWorkbook或XSSFWorkbook,用于表示Excel文件。

c. 创建一个Sheet对象,用于表示Excel文件中的一个工作表。

d. 创建行和单元格对象,并将数据填充到单元格中。

e. 可以通过设置单元格样式来格式化表格,例如设置字体、背景色、边框等。

f. 将Workbook对象保存为Excel文件。

以下是一个示例代码:

代码语言:csharp
复制

using NPOI.HSSF.UserModel;

using NPOI.SS.UserModel;

using System.IO;

// 创建Workbook对象

IWorkbook workbook = new HSSFWorkbook();

// 创建Sheet对象

ISheet sheet = workbook.CreateSheet("Sheet1");

// 创建行和单元格对象,并填充数据

for (int i = 0; i < dataTable.Rows.Count; i++)

{

代码语言:txt
复制
   IRow row = sheet.CreateRow(i);
代码语言:txt
复制
   for (int j = 0; j < dataTable.Columns.Count; j++)
代码语言:txt
复制
   {
代码语言:txt
复制
       ICell cell = row.CreateCell(j);
代码语言:txt
复制
       cell.SetCellValue(dataTable.Rows[i][j].ToString());
代码语言:txt
复制
   }

}

// 设置单元格样式

ICellStyle style = workbook.CreateCellStyle();

style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Yellow.Index;

style.FillPattern = FillPattern.SolidForeground;

// 其他样式设置...

// 应用样式到单元格

for (int i = 0; i < dataTable.Rows.Count; i++)

{

代码语言:txt
复制
   IRow row = sheet.GetRow(i);
代码语言:txt
复制
   for (int j = 0; j < dataTable.Columns.Count; j++)
代码语言:txt
复制
   {
代码语言:txt
复制
       ICell cell = row.GetCell(j);
代码语言:txt
复制
       cell.CellStyle = style;
代码语言:txt
复制
   }

}

// 保存为Excel文件

using (FileStream fs = new FileStream("output.xls", FileMode.Create))

{

代码语言:txt
复制
   workbook.Write(fs);

}

代码语言:txt
复制
  1. EPPlus(https://github.com/EPPlusSoftware/EPPlus)是另一个流行的开源.NET库,用于处理Excel文件。它提供了更简单的API,支持读写Excel文件,并且支持更多的Excel功能。使用EPPlus,可以通过以下步骤将数据表导出到Excel并格式化表格:

a. 引用EPPlus库,并添加命名空间using OfficeOpenXml。

b. 创建一个ExcelPackage对象,用于表示Excel文件。

c. 创建一个工作表对象,并设置工作表名称。

d. 创建行和单元格对象,并将数据填充到单元格中。

e. 可以通过设置单元格样式来格式化表格,例如设置字体、背景色、边框等。

f. 将ExcelPackage对象保存为Excel文件。

以下是一个示例代码:

代码语言:csharp
复制

using OfficeOpenXml;

using System.IO;

// 创建ExcelPackage对象

using (ExcelPackage package = new ExcelPackage())

{

代码语言:txt
复制
   // 创建工作表对象
代码语言:txt
复制
   ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
代码语言:txt
复制
   // 创建行和单元格对象,并填充数据
代码语言:txt
复制
   for (int i = 0; i < dataTable.Rows.Count; i++)
代码语言:txt
复制
   {
代码语言:txt
复制
       for (int j = 0; j < dataTable.Columns.Count; j++)
代码语言:txt
复制
       {
代码语言:txt
复制
           worksheet.Cells[i + 1, j + 1].Value = dataTable.Rows[i][j].ToString();
代码语言:txt
复制
       }
代码语言:txt
复制
   }
代码语言:txt
复制
   // 设置单元格样式
代码语言:txt
复制
   using (ExcelRange range = worksheet.Cells[1, 1, dataTable.Rows.Count, dataTable.Columns.Count])
代码语言:txt
复制
   {
代码语言:txt
复制
       range.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
代码语言:txt
复制
       range.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.Yellow);
代码语言:txt
复制
       // 其他样式设置...
代码语言:txt
复制
   }
代码语言:txt
复制
   // 保存为Excel文件
代码语言:txt
复制
   FileInfo file = new FileInfo("output.xlsx");
代码语言:txt
复制
   package.SaveAs(file);

}

代码语言:txt
复制
  1. ClosedXML(https://github.com/ClosedXML/ClosedXML)是另一个.NET库,用于创建、读取和操作Excel文件。它提供了简单易用的API,并且支持大部分Excel功能。使用ClosedXML,可以通过以下步骤将数据表导出到Excel并格式化表格:

a. 引用ClosedXML库,并添加命名空间using ClosedXML.Excel。

b. 创建一个Workbook对象,用于表示Excel文件。

c. 创建一个Worksheet对象,并设置工作表名称。

d. 创建行和单元格对象,并将数据填充到单元格中。

e. 可以通过设置单元格样式来格式化表格,例如设置字体、背景色、边框等。

f. 将Workbook对象保存为Excel文件。

以下是一个示例代码:

代码语言:csharp
复制

using ClosedXML.Excel;

using System.IO;

// 创建Workbook对象

using (XLWorkbook workbook = new XLWorkbook())

{

代码语言:txt
复制
   // 创建Worksheet对象
代码语言:txt
复制
   IXLWorksheet worksheet = workbook.Worksheets.Add("Sheet1");
代码语言:txt
复制
   // 创建行和单元格对象,并填充数据
代码语言:txt
复制
   for (int i = 0; i < dataTable.Rows.Count; i++)
代码语言:txt
复制
   {
代码语言:txt
复制
       for (int j = 0; j < dataTable.Columns.Count; j++)
代码语言:txt
复制
       {
代码语言:txt
复制
           worksheet.Cell(i + 1, j + 1).Value = dataTable.Rows[i][j].ToString();
代码语言:txt
复制
       }
代码语言:txt
复制
   }
代码语言:txt
复制
   // 设置单元格样式
代码语言:txt
复制
   worksheet.RangeUsed().Style.Fill.BackgroundColor = XLColor.Yellow;
代码语言:txt
复制
   // 其他样式设置...
代码语言:txt
复制
   // 保存为Excel文件
代码语言:txt
复制
   workbook.SaveAs("output.xlsx");

}

代码语言:txt
复制

以上是使用C#将数据表导出到Excel时格式化表格的方法。根据具体需求和使用习惯,可以选择适合的第三方库来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券