public List<Project> ImportProjectsFromExcel(string path)
{
LoadOptions loadOptionForXlsx = new LoadOptions(LoadFormat.Xlsx);
Workbook workbook = new Workbook(path, loadOptionForXlsx);
char column = 'A';
var project = new Project();
var projects = new List<Project>();
var rowcount = workbook.Worksheets["Sheet1"].Cells.MaxDataRow;
for (int index = 2; index <= rowcount + 1; )
{
var cell = workbook.Worksheets["Sheet1"].Cells[column + index.ToString()];
switch (column)
{
case 'A':
project.ProjectName = cell.StringValue;
++column;
break;
case 'B':
project.ProjectCode = cell.StringValue;
++column;
break;
case 'C':
project.Description = cell.StringValue;
++column;
break;
case 'D':
project.EngagementManagerId = cell.IntValue;
++column;
break;
case 'E':
project.ProjectManagerId = cell.IntValue;
++column;
break;
case 'F':
project.AdditionalNotes = cell.StringValue;
++column;
try
{
AddProject(project);
projects.Add(project);
}
catch (Exception dbEx)
{
var message = dbEx.Message;
dbEx = null;
}
project = new Project();
++index;
column = 'A';
break;
}
}
return projects;
}
问题:这里我从 Excel 文件中读取数据并将其插入到数据库中,projectId 是项目的主键。但是如果 ProjectId 在一个单元格中重复,则会发生异常,但对于下一个单元格,如果 ProjectId 为“唯一”,那么也它进入 catch 并为 ProjectId 提供异常。如何解决这个问题?