diff --git a/src/Magicodes.ExporterAndImporter.Excel/ExcelImporterAttribute.cs b/src/Magicodes.ExporterAndImporter.Excel/ExcelImporterAttribute.cs index 846a6d22..9d7c6454 100644 --- a/src/Magicodes.ExporterAndImporter.Excel/ExcelImporterAttribute.cs +++ b/src/Magicodes.ExporterAndImporter.Excel/ExcelImporterAttribute.cs @@ -64,5 +64,11 @@ public class ExcelImporterAttribute : ImporterAttribute /// 是否仅导出错误数据 /// public bool IsOnlyErrorRows { get; set; } + + + /// + /// 首列偏移量(默认为0,数据从第2列开始则偏移量为1) + /// + public int FirstColumnOffset { get; set; } = 0; } } \ No newline at end of file diff --git a/src/Magicodes.ExporterAndImporter.Excel/Utility/ImportHelper.cs b/src/Magicodes.ExporterAndImporter.Excel/Utility/ImportHelper.cs index 7a7aebb8..9be08664 100644 --- a/src/Magicodes.ExporterAndImporter.Excel/Utility/ImportHelper.cs +++ b/src/Magicodes.ExporterAndImporter.Excel/Utility/ImportHelper.cs @@ -567,8 +567,8 @@ protected virtual void ParseTemplate(ExcelPackage excelPackage, ImportResultEnum { ExcelImporterSettings.HeaderRowIndex++; } - - for (var columnIndex = 1; columnIndex <= endColumnCount; columnIndex++) + var firstColumnOffset = ExcelImporterSettings.FirstColumnOffset; + for (var columnIndex = firstColumnOffset + 1; columnIndex <= endColumnCount; columnIndex++) { var header = worksheet.Cells[ExcelImporterSettings.HeaderRowIndex, columnIndex].Text; @@ -659,7 +659,7 @@ protected virtual void ParseTemplate(ExcelPackage excelPackage, ImportResultEnum }); throw new Exception($"{Resource.AnUnknownErrorOccurredInTheTemplate}{ex.Message}", ex); } - + } @@ -1149,13 +1149,13 @@ protected virtual void ParseData(ExcelPackage excelPackage) ImportResult.Data = new List(); var propertyInfos = new List(typeof(T).GetProperties()); - + var firstColumnOffset = ExcelImporterSettings.FirstColumnOffset; for (var rowIndex = ExcelImporterSettings.HeaderRowIndex + 1; rowIndex <= worksheet.Dimension.End.Row; rowIndex++) { //跳过空行 - if (worksheet.Cells[rowIndex, 1, rowIndex, worksheet.Dimension.End.Column].All(p => p.Text == string.Empty)) + if (worksheet.Cells[rowIndex, 1 + firstColumnOffset, rowIndex, worksheet.Dimension.End.Column].All(p => p.Text == string.Empty)) { EmptyRows.Add(rowIndex); continue;