0
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 提供异常。如何解决这个问题?

4

1 回答 1

0

我认为您正在使用自己的 .NET 代码来添加/更新从工作表单元格中提取的值(通过 Aspose.Cells API)。如果您可以通过 Aspose.Cells API 将数据从工作表导出到数组或 DataTable(请参阅文档以供参考),然后更新您的数据库表(通过您自己的 .NET 代码),那就更好了。我也不确定你发现了什么异常,异常是由你自己的 .NET API 代码或 Aspose.Cells API 引发的?如果您可以在Aspose.Cells 论坛中使用示例项目和模板文件发布您的问题,我们将不胜感激,我们将在那里进行检查并尽快为您提供帮助。

我是 Aspose 的开发人员布道师。

于 2016-02-10T12:58:48.810 回答