ExcelUnity/Exporter/DefaultExcelExporter.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Reflection;
using ExcelUnity.Core;
using ExcelUnity.Exporter.Attributes;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
namespace ExcelUnity.Exporter;
public class DefaultExcelExporter : IExcelExporter
{
public void Export<T>(List<T> data,string filePath)
{
using var outStream = new FileStream(filePath, FileMode.Create, FileAccess.Write);
Export(data,outStream);
}
public byte[] Export<T>(List<T> data)
{
using var stream = new MemoryStream();
Export(data,stream);
return stream.ToArray();
}
public void Export<T>(List<T> data,Stream stream)
{
if (stream == null) throw new ArgumentNullException("stream is null");
ExportExcel(data,stream);
}
private void ExportExcel<T>(List<T> data,Stream stream, string title = "导出记录")
{
var workBook = new XSSFWorkbook();
try
{
var sheet = workBook.CreateSheet();
var columnProperties = CreateColumnProperties(typeof(T));
//创建Title
var rowIndex = 0;
if (!string.IsNullOrEmpty(title))
{
var row = sheet.CreateRow(0);
var cell = row.CreateCell(0);
cell.SetCellValue(title);
var cellStyle = workBook.CreateCellStyle();
cellStyle.Alignment = HorizontalAlignment.Center;
cellStyle.VerticalAlignment = VerticalAlignment.Center;
var font = workBook.CreateFont();
font.IsBold = true;
font.FontName = "微软雅黑";
cellStyle.SetFont(font);
cell.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(0, rowIndex++, 0, columnProperties.Count - 1));
}
//创建header
var excelRow = sheet.CreateRow(rowIndex++);
后面还有 41 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
