问题描述
如何使用 ClosedXML 获取 Excel 表中所有已使用列的列表?这就是为所有单元格发布列的方式。我没有找到适合列的方法
var cells = source_sheet.CellsUsed();
foreach (var c in cells)
{}
像这样拉出用过的扬声器。但它看起来像...不是真的 =)
List<string> names = new List<string>();
var cells = sheet.CellsUsed();
foreach(var c in cells)
{
if (names.Contains(c.Address.ColumnLetter))
break;
else
names.Add(c.Address.ColumnLetter);
}
解决方法
如果您的数据确实在定义的 Excel 表格 中,那么您可以按如下方式返回字段名称:
using var wb = new XLWorkbook("test.xlsx");
var ws = wb.Worksheets.First();
var table = ws.Tables.First();
var names = table.Fields.Select(f => f.Name).ToList();
foreach (var name in names)
Console.WriteLine(name);
如果您的数据只是在常规单元格中,您可以这样做:
using var wb = new XLWorkbook("test.xlsx");
var ws = wb.Worksheets.First();
var names = ws.ColumnsUsed().Select(c => c.Cell(rowNumber: 1).GetString()).ToList();
foreach (var name in names)
Console.WriteLine(name);