コード例 #1
0
        public byte[] GenerateExcelFile()
        {
            // Create main export with requested fields.
            var mainSheet = Talon.Excel(Mains).Name(DefaultSheetName).Sheet(DefaultSheetName).Columns(c =>
            {
                c.Bound(x => x.StiNumber).Title("STI Number");
                c.Bound(x => x.Revision).Title("Revision");
                foreach (var column in ColSelection)
                {
                    switch (column)
                    {
                    case "Title":
                        c.Bound(x => x.Title).Title("Title");
                        break;

                    case "Status":
                        c.Bound(x => x.StatusDisplayName).Title("Status");
                        break;

                    case "NumberPages":
                        c.Bound(x => x.NumberPagesStr).Title("Number Pages");
                        break;

                    case "ProductType":
                        c.Bound(x => x.DocumentTypeStr).Title("Product Type");
                        break;

                    case "CreationDate":
                        c.Bound(x => x.CreateDateStr).Title("Creation Date");
                        break;

                    case "ApprovedDate":
                        c.Bound(x => x.ApprovalDateStr).Title("Approved Date");
                        break;

                    case "Abstract":
                        c.Bound(x => x.AbstractWithAccessCheck).Title("Abstract");
                        break;

                    case "Conference":
                        c.Bound(x => x.ConferenceName).Title("Conference Name");
                        c.Bound(x => x.ConferenceSponsor).Title("Conference Sponsor");
                        c.Bound(x => x.ConferenceLocation).Title("Conference Location");
                        c.Bound(x => x.ConferenceBeginDateStr).Title("Conference Start Date");
                        c.Bound(x => x.ConferenceEndDateStr).Title("Conference End Date");
                        break;

                    case "Journal":
                        c.Bound(x => x.JournalName).Title("Journal Name");
                        break;
                    }
                }
            });

            int currentColumn = 1;
            int currentRow    = Mains.Count + 3;

            // Setup all output text before exporting
            if (ColSelection.Contains("Contacts") && !SheetSelection.Contains("Contacts"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Contacts"); currentColumn += ContactRowCount;
            }
            if (ColSelection.Contains("Authors") && !SheetSelection.Contains("Authors"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Authors"); currentColumn += AuthorRowCount;
            }
            if (ColSelection.Contains("Funding") && !SheetSelection.Contains("Funding"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Funding"); currentColumn += FundingRowCount;
            }
            if (ColSelection.Contains("Subjects") && !SheetSelection.Contains("Subjects"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Subjects"); currentColumn += MetaDataRowCount;
            }
            if (ColSelection.Contains("Intellectual") && !SheetSelection.Contains("Intellectual"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Intellectual Property"); currentColumn += IntellectualProprtyRowCount;
            }
            if (ColSelection.Contains("Keywords") && !SheetSelection.Contains("Keywords"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Keywords"); currentColumn += MetaDataRowCount;
            }

            if (ColSelection.Contains("Reviewers") && !SheetSelection.Contains("Reviewers"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Reviewers"); currentColumn         += ReviewersRowCount;
                mainSheet.SetValue(currentColumn, currentRow, "Reviewer Comments"); currentColumn += ReviewerCommentsRowCount;
            }

            if (ColSelection.Contains("ReviewerHistory") && !SheetSelection.Contains("ReviewerHistory"))
            {
                mainSheet.SetValue(currentColumn, currentRow, "Reviewer History"); currentColumn          += ReviewerHistoryRowCount;
                mainSheet.SetValue(currentColumn, currentRow, "Reviewer Comments History"); currentColumn += ReviewerHistoryRowCount;
            }

            // Export for a template
            byte[] excelFile = mainSheet.Export();

            // Setup columns for data additions
            currentColumn = 1;
            currentRow++;

            // Add in all extra information
            if (ColSelection.Contains("Contacts"))
            {
                excelFile = GenerateContactsExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Authors"))
            {
                excelFile = GenerateAuthorsExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Funding"))
            {
                excelFile = GenerateFundingExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Subjects"))
            {
                excelFile = GenerateSubjectExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Intellectual"))
            {
                excelFile = GenerateIntellectualPropertyExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Keywords"))
            {
                excelFile = GenerateKeywordsExcel(excelFile, currentRow, ref currentColumn);
            }

            if (ColSelection.Contains("Reviewers"))
            {
                excelFile = GenerateReviewersExcel(excelFile, currentRow, ref currentColumn);
                excelFile = GenerateReviewerCommentsExcel(excelFile, currentRow, ref currentColumn);
            }

            if (ColSelection.Contains("ReviewerHistory"))
            {
                excelFile = GenerateReviewerHistoryExcel(excelFile, currentRow, ref currentColumn);
                excelFile = GenerateReviewerHistoryCommentsExcel(excelFile, currentRow, ref currentColumn);
            }

            return(excelFile);
        }
コード例 #2
0
        public byte[] GenerateExcelFile()
        {
            // Create main export with requested fields.
            var sortFile = Talon.Excel(Sorts).Name(DefaultSheetName).Sheet(DefaultSheetName).Columns(c =>
            {
                c.Bound(x => x.TitleStr).Title("STI Number and Rev");
                foreach (var column in ColSelection)
                {
                    switch (column)
                    {
                    case "PublishTitle":
                        c.Bound(x => x.PublishTitle).Title("Title");
                        break;

                    case "Osti":
                        c.Bound(x => x.OstiId).Title("OSTI ID");
                        c.Bound(x => x.OstiDate).Title("OSTI Publish Date");
                        c.Bound(x => x.OstiStatus).Title("OSTI Publish Status");
                        c.Bound(x => x.OstiStatusMsg).Title("OSTI Publish Message");
                        break;

                    case "PublicationDate":
                        c.Bound(x => x.PublicationDate).Title("Publication/Issue Date");
                        break;

                    case "ProductType":
                        c.Bound(x => x.ProductTypeDisplayName).Title("Artifact Type");
                        break;

                    case "ReportNumbers":
                        c.Bound(x => x.ReportNumbers).Title("Report/Product Number(s)");
                        break;

                    case "Country":
                        c.Bound(x => x.Country).Title("Country of Origin/Publication");
                        break;

                    case "Language":
                        c.Bound(x => x.Language).Title("Publication Language");
                        break;

                    case "AccessLimitation":
                        c.Bound(x => x.AccessLimitationDisplayName).Title("Access Limitation");
                        break;

                    case "Abstract":
                        c.Bound(x => x.AbstractWithAccessCheck).Title("Description/Abstract");
                        break;

                    case "Publisher":
                        c.Bound(x => x.PublisherName).Title("Publisher Name");
                        c.Bound(x => x.PublisherCity).Title("Publisher City");
                        c.Bound(x => x.PublisherState).Title("Publisher State");
                        c.Bound(x => x.PublisherCountry).Title("Publisher Country");
                        break;

                    case "Conference":
                        c.Bound(x => x.ConferenceName).Title("Conference Name");
                        c.Bound(x => x.ConferenceLocation).Title("Conference Location");
                        c.Bound(x => x.ConferenceBeginDate).Title("Conference Start Date");
                        c.Bound(x => x.ConferenceEndDate).Title("Conference End Date");
                        break;

                    case "Journal":
                        c.Bound(x => x.JournalTypeDisplayName).Title("Journal Type");
                        c.Bound(x => x.JournalName).Title("Journal Name");
                        c.Bound(x => x.JournalVolume).Title("Journal Volume");
                        c.Bound(x => x.JournalIssue).Title("Journal Issue");
                        c.Bound(x => x.JournalSerial).Title("Journal Serial");
                        c.Bound(x => x.JournalStartPage).Title("Journal Beginning Page");
                        c.Bound(x => x.JournalEndPage).Title("Journal Ending Page");
                        c.Bound(x => x.JournalDoi).Title("Journal DOI");
                        break;

                    case "Patent":
                        c.Bound(x => x.PatentAssignee).Title("Patent Assignee");
                        break;

                    case "OpenNet":
                        c.Bound(x => x.OpenNetData.AccessNumber).Title("OpenNet Accession Number");
                        c.Bound(x => x.OpenNetData.DocLocation).Title("OpenNet Document Location");
                        c.Bound(x => x.OpenNetData.FieldOfficeAym).Title("OpenNet Applicable Field Office Acronym");
                        c.Bound(x => x.OpenNetData.DeclassStatusEnumDisplayName).Title("OpenNet Declassification Status");
                        c.Bound(x => x.OpenNetData.DeclassificationDate).Title("OpenNet Declassificaton Date");
                        c.Bound(x => x.OpenNetData.Keywords).Title("OpenNet Document Keywords");
                        break;

                    case "ProtectedData":
                        c.Bound(x => x.ProtectedData.Crada).Title("Protected Data CRADA");
                        c.Bound(x => x.ProtectedData.ReleaseDate).Title("Protected Access Limitation Release Date");
                        c.Bound(x => x.ProtectedData.ExemptNumber).Title("Protected Exemption Number");
                        c.Bound(x => x.ProtectedData.Description).Title("Protected Description");
                        break;

                    case "OfficialUseOnly":
                        c.Bound(x => x.AccessReleaseDate).Title("Official Use Access Limitation Release Date");
                        c.Bound(x => x.ExemptionNumber).Title("Official Use Exemption Number");
                        break;
                    }
                }
            });

            int currentColumn = 1;
            int currentRow    = Sorts.Count + 3;

            // Setup all output text before exporting
            if (ColSelection.Contains("Contacts") && !SheetSelection.Contains("Contacts"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Contacts"); currentColumn += ContactRowCount;
            }
            if (ColSelection.Contains("Authors") && !SheetSelection.Contains("Authors"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Authors"); currentColumn += AuthorRowCount;
            }
            if (ColSelection.Contains("Funding") && !SheetSelection.Contains("Funding"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Funding"); currentColumn += FundingRowCount;
            }
            if (ColSelection.Contains("SubjectCategories") && !SheetSelection.Contains("SubjectCategories"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Subjects"); currentColumn += MetaDataRowCount;
            }
            if (ColSelection.Contains("SponsoringOrgs") && !SheetSelection.Contains("SponsoringOrgs"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Sponsoring Orgs"); currentColumn += MetaDataRowCount;
            }
            if (ColSelection.Contains("Keywords") && !SheetSelection.Contains("Keywords"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Keywords"); currentColumn += MetaDataRowCount;
            }
            if (ColSelection.Contains("Reviewers") && !SheetSelection.Contains("Reviewers"))
            {
                sortFile.SetValue(currentColumn, currentRow, "Reviewers"); currentColumn += ReviewersRowCount;
            }

            // Export for a template
            byte[] excelFile = sortFile.Export();

            // Setup columns for data additions
            currentColumn = 1;
            currentRow++;

            // Add in all extra information
            if (ColSelection.Contains("Contacts"))
            {
                excelFile = GenerateContactsExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Authors"))
            {
                excelFile = GenerateAuthorsExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Funding"))
            {
                excelFile = GenerateFundingExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("SubjectCategories"))
            {
                excelFile = GenerateSubjectCategoryExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("SponsoringOrgs"))
            {
                excelFile = GenerateSponsoringOrgsExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Keywords"))
            {
                excelFile = GenerateKeywordsExcel(excelFile, currentRow, ref currentColumn);
            }
            if (ColSelection.Contains("Reviewers"))
            {
                excelFile = GenerateReviewersExcel(excelFile, currentRow, ref currentColumn);
            }

            return(excelFile);
        }