using System.Collections.Generic;
public static void Main()
var filepath = Path.Combine(@"D:\","data.xlsx");
var excel = new ExcelQueryFactory(filepath);
var workSheet = excel.GetWorksheetNames();
if (workSheet.Count() == 0)
Console.WriteLine("error.");
var sheetName = workSheet.FirstOrDefault();
var sourceData = from d in excel.WorksheetNoHeader(sheetName)
select new ExcelImportModel() { A = d[0], B = d[1], C = d[2] };
var groupByMainNo = Split(sourceData);
foreach (var main in groupByMainNo)
var mainNo = main.FirstOrDefault().B;
Console.WriteLine($"主料號: {mainNo}");
foreach (var e in main.Skip(4))
Console.WriteLine($"主料號:{mainNo}, 子料號: {e.B}, 金額: {e.C}, 描述:{e.A}");
static IEnumerable<IEnumerable<ExcelImportModel>> Split(IEnumerable<ExcelImportModel> items)
List<ExcelImportModel> result = new List<ExcelImportModel>();
foreach (ExcelImportModel item in items)
if (string.IsNullOrWhiteSpace(item.A) && result.Any())
result = new List<ExcelImportModel>();
public class ExcelImportModel
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }