using System.ComponentModel.DataAnnotations;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Text;
using Newtonsoft.Json;
using System.Reflection;
using NPOI.SS.Formula.Functions;
using NPOI.XSSF;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
namespace ConsoleApp2
{
internal class Program
{
static void Main(string[] args)
{
ImportStuListToExcel(100);
PrintLog();
}
static void PrintLog(string msg = null, [System.Runtime.CompilerServices.CallerLineNumber] int lineNum = -1,
[CallerMemberName] string func = null, [CallerFilePath] string fileName = null)
{
Console.WriteLine($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{msg},{lineNum},{func},{fileName}");
}
static void ImportStuListToExcel(int len)
{
var list = InitStudentList(len);
ImportListTToExcel<Student>(list, $"aaa{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.xlsx");
}
static void ImportListTToExcel<T>(List<T> dataList, string excelFilePath) where T : class
{
if(File.Exists(excelFilePath))
{
File.Delete(excelFilePath);
}
//create work book
IWorkbook workbook = new XSSFWorkbook();
//create sheet
ISheet sheet = workbook.CreateSheet("Sheet1");
//Header row
int rowIdx = 0;
IRow headerRow = sheet.CreateRow(rowIdx++);
var props = typeof(T).GetProperties();
int propCount=props.Length;
int columnIdx = 0;
foreach (var prop in props)
{
var cell = headerRow.CreateCell(columnIdx++);
cell.SetCellValue(prop.Name);
}
foreach (var stu in dataList)
{
IRow dataRow=sheet.CreateRow(rowIdx++);
columnIdx = 0;
foreach (var prop in props)
{
var cell = dataRow.CreateCell(columnIdx++);
cell.SetCellValue(prop.GetValue(stu).ToString());
}
}
using (FileStream file = new FileStream(excelFilePath, FileMode.Create, FileAccess.Write))
{
workbook.Write(file);
}
workbook.Close();
}
static List<Student> InitStudentList(int len)
{
List<Student> list = new List<Student>();
for (int i = 0; i < len; i++)
{
list.Add(new Student()
{
Id = i + 1,
Name = Guid.NewGuid().ToString(),
Description = Guid.NewGuid().ToString(),
Title = Guid.NewGuid().ToString(),
Topic = Guid.NewGuid().ToString(),
Author = Guid.NewGuid().ToString(),
ISBN = Guid.NewGuid().ToString(),
Summary = Guid.NewGuid().ToString(),
});
}
return list;
}
} public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Title { get; set; }
public string Topic { get; set; }
public string ISBN { get; set; }
public string Summary { get; set; }
public string Author { get; set; }
}
}
![]()