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 が 1 つのセルで繰り返されると例外が発生しますが、ProjectId が「一意」の場合は次のセルでも発生します。キャッチ内に入り、ProjectId に例外を与えています。これを解決するには?

4

1 に答える 1

0

独自の .NET コードを使用して、ワークシート セルから (Aspose.Cells API 経由で) 抽出された値を追加/更新していると思います。Aspose.Cells API を介してワークシートから Arrays または DataTable にデータをエクスポートし (参照用のドキュメントを参照)、データベース テーブルを (独自の .NET コードで) 更新できるとよいでしょう。また、どの例外が見つかったのかわかりませんが、例外は独自の .NET API コードまたは Aspose.Cells API によってスローされますか? サンプル プロジェクトとテンプレート ファイルと共に問題をAspose.Cells フォーラムに投稿していただければ幸いです。確認し、すぐにサポートいたします。

私は Aspose の開発者エバンジェリストです。

于 2016-02-10T12:58:48.810 に答える