简介
该代码片段展示了使用NPOI 2.7.5库读取Excel文件(.xlsx)并转换为JSON格式数据的过程。
通过XSSFWorkbook打开文件流,逐行读取单元格内容,过滤空行和空值,将有效数据存入列表,最后将特定列(SN、PIN、InnerSN)序列化为JSON输出。
使用的组件
NPOI ,2.7.5

组件项目
https://github.com/nissl-lab/npoi
直接上代码
csharp
static void Main(string[] args)
{
using var stream = new FileStream("1.xlsx", FileMode.Open) { Position = 0 };
XSSFWorkbook xssWorkbook = new XSSFWorkbook(stream);
var list = new List<List<string?>?>();
ISheet sheet = xssWorkbook.GetSheetAt(0);
int cellCount = sheet.GetRow(0).LastCellNum;
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
if (row == null) continue;
if (row.Cells.All(d => d.CellType == CellType.Blank)) continue;
var rowList = new List<string?>();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
{
if (!string.IsNullOrEmpty(row.GetCell(j).ToString()) && !string.IsNullOrWhiteSpace(row.GetCell(j).ToString()))
{
rowList.Add(row.GetCell(j).ToString());
}
}
}
list.Add(rowList);
}
var aa = JsonSerializer.Serialize(list.Select(x => new { SN = x[0], PIN = x[1], InnerSN = x[3] }));
Console.WriteLine(aa);
}