zoukankan      html  css  js  c++  java
  • 基于Open XML 导出数据到Excel

    数据导出的结果:

    步骤1、新建一个Excel 文档,模板根据自己需要设置

    image

    步骤2、使用OpenXml  打开Excel 文件

    image

    步骤3、点击ReflectCode 功能,生成相应的代码文档

    using DocumentFormat.OpenXml.Packaging;
    using Ap = DocumentFormat.OpenXml.ExtendedProperties;
    using Vt = DocumentFormat.OpenXml.VariantTypes;
    using DocumentFormat.OpenXml;
    using DocumentFormat.OpenXml.Spreadsheet;
    using X14 = DocumentFormat.OpenXml.Office2010.Excel;
    using A = DocumentFormat.OpenXml.Drawing;
    
    namespace GeneratedCode
    {
        public class GeneratedClass
        {
            // Creates a SpreadsheetDocument.
            public void CreatePackage(string filePath)
            {
                using(SpreadsheetDocument package = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook))
                {
                    CreateParts(package);
                }
            }
    
            // Adds child parts and generates content of the specified part.
            private void CreateParts(SpreadsheetDocument document)
            {
                ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3");
                GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1);
    
                WorkbookPart workbookPart1 = document.AddWorkbookPart();
                GenerateWorkbookPart1Content(workbookPart1);
    
                WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId3");
                GenerateWorksheetPart1Content(worksheetPart1);
    
                WorksheetPart worksheetPart2 = workbookPart1.AddNewPart<WorksheetPart>("rId2");
                GenerateWorksheetPart2Content(worksheetPart2);
    
                WorksheetPart worksheetPart3 = workbookPart1.AddNewPart<WorksheetPart>("rId1");
                GenerateWorksheetPart3Content(worksheetPart3);
    
                SpreadsheetPrinterSettingsPart spreadsheetPrinterSettingsPart1 = worksheetPart3.AddNewPart<SpreadsheetPrinterSettingsPart>("rId1");
                GenerateSpreadsheetPrinterSettingsPart1Content(spreadsheetPrinterSettingsPart1);
    
                SharedStringTablePart sharedStringTablePart1 = workbookPart1.AddNewPart<SharedStringTablePart>("rId6");
                GenerateSharedStringTablePart1Content(sharedStringTablePart1);
    
                WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId5");
                GenerateWorkbookStylesPart1Content(workbookStylesPart1);
    
                ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId4");
                GenerateThemePart1Content(themePart1);
    
                SetPackageProperties(document);
            }
    
            // Generates content of extendedFilePropertiesPart1.
            private void GenerateExtendedFilePropertiesPart1Content(ExtendedFilePropertiesPart extendedFilePropertiesPart1)
            {
                Ap.Properties properties1 = new Ap.Properties();
                properties1.AddNamespaceDeclaration("vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes");
                Ap.Application application1 = new Ap.Application();
                application1.Text = "Microsoft Excel";
                Ap.DocumentSecurity documentSecurity1 = new Ap.DocumentSecurity();
                documentSecurity1.Text = "0";
                Ap.ScaleCrop scaleCrop1 = new Ap.ScaleCrop();
                scaleCrop1.Text = "false";
    
                Ap.HeadingPairs headingPairs1 = new Ap.HeadingPairs();
    
                Vt.VTVector vTVector1 = new Vt.VTVector(){ BaseType = Vt.VectorBaseValues.Variant, Size = (UInt32Value)2U };
    
                Vt.Variant variant1 = new Vt.Variant();
                Vt.VTLPSTR vTLPSTR1 = new Vt.VTLPSTR();
                vTLPSTR1.Text = "工作表";
    
                variant1.Append(vTLPSTR1);
    
                Vt.Variant variant2 = new Vt.Variant();
                Vt.VTInt32 vTInt321 = new Vt.VTInt32();
                vTInt321.Text = "3";
    
                variant2.Append(vTInt321);
    
                vTVector1.Append(variant1);
                vTVector1.Append(variant2);
    
                headingPairs1.Append(vTVector1);
    
                Ap.TitlesOfParts titlesOfParts1 = new Ap.TitlesOfParts();
    
                Vt.VTVector vTVector2 = new Vt.VTVector(){ BaseType = Vt.VectorBaseValues.Lpstr, Size = (UInt32Value)3U };
                Vt.VTLPSTR vTLPSTR2 = new Vt.VTLPSTR();
                vTLPSTR2.Text = "Sheet1";
                Vt.VTLPSTR vTLPSTR3 = new Vt.VTLPSTR();
                vTLPSTR3.Text = "Sheet2";
                Vt.VTLPSTR vTLPSTR4 = new Vt.VTLPSTR();
                vTLPSTR4.Text = "Sheet3";
    
                vTVector2.Append(vTLPSTR2);
                vTVector2.Append(vTLPSTR3);
                vTVector2.Append(vTLPSTR4);
    
                titlesOfParts1.Append(vTVector2);
                Ap.LinksUpToDate linksUpToDate1 = new Ap.LinksUpToDate();
                linksUpToDate1.Text = "false";
                Ap.SharedDocument sharedDocument1 = new Ap.SharedDocument();
                sharedDocument1.Text = "false";
                Ap.HyperlinksChanged hyperlinksChanged1 = new Ap.HyperlinksChanged();
                hyperlinksChanged1.Text = "false";
                Ap.ApplicationVersion applicationVersion1 = new Ap.ApplicationVersion();
                applicationVersion1.Text = "14.0300";
    
                properties1.Append(application1);
                properties1.Append(documentSecurity1);
                properties1.Append(scaleCrop1);
                properties1.Append(headingPairs1);
                properties1.Append(titlesOfParts1);
                properties1.Append(linksUpToDate1);
                properties1.Append(sharedDocument1);
                properties1.Append(hyperlinksChanged1);
                properties1.Append(applicationVersion1);
    
                extendedFilePropertiesPart1.Properties = properties1;
            }
    
            // Generates content of workbookPart1.
            private void GenerateWorkbookPart1Content(WorkbookPart workbookPart1)
            {
                Workbook workbook1 = new Workbook();
                workbook1.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
                FileVersion fileVersion1 = new FileVersion(){ ApplicationName = "xl", LastEdited = "5", LowestEdited = "5", BuildVersion = "9302" };
                WorkbookProperties workbookProperties1 = new WorkbookProperties(){ DefaultThemeVersion = (UInt32Value)124226U };
    
                BookViews bookViews1 = new BookViews();
                WorkbookView workbookView1 = new WorkbookView(){ XWindow = 600, YWindow = 75, WindowWidth = (UInt32Value)19395U, WindowHeight = (UInt32Value)7605U };
    
                bookViews1.Append(workbookView1);
    
                Sheets sheets1 = new Sheets();
                Sheet sheet1 = new Sheet(){ Name = "Sheet1", SheetId = (UInt32Value)1U, Id = "rId1" };
                Sheet sheet2 = new Sheet(){ Name = "Sheet2", SheetId = (UInt32Value)2U, Id = "rId2" };
                Sheet sheet3 = new Sheet(){ Name = "Sheet3", SheetId = (UInt32Value)3U, Id = "rId3" };
    
                sheets1.Append(sheet1);
                sheets1.Append(sheet2);
                sheets1.Append(sheet3);
                CalculationProperties calculationProperties1 = new CalculationProperties(){ CalculationId = (UInt32Value)144525U };
    
                workbook1.Append(fileVersion1);
                workbook1.Append(workbookProperties1);
                workbook1.Append(bookViews1);
                workbook1.Append(sheets1);
                workbook1.Append(calculationProperties1);
    
                workbookPart1.Workbook = workbook1;
            }
    
            // Generates content of worksheetPart1.
            private void GenerateWorksheetPart1Content(WorksheetPart worksheetPart1)
            {
                Worksheet worksheet1 = new Worksheet(){ MCAttributes = new MarkupCompatibilityAttributes(){ Ignorable = "x14ac" }  };
                worksheet1.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
                worksheet1.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
                worksheet1.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
                SheetDimension sheetDimension1 = new SheetDimension(){ Reference = "A1" };
    
                SheetViews sheetViews1 = new SheetViews();
                SheetView sheetView1 = new SheetView(){ WorkbookViewId = (UInt32Value)0U };
    
                sheetViews1.Append(sheetView1);
                SheetFormatProperties sheetFormatProperties1 = new SheetFormatProperties(){ DefaultRowHeight = 13.5D, DyDescent = 0.15D };
                SheetData sheetData1 = new SheetData();
                PhoneticProperties phoneticProperties1 = new PhoneticProperties(){ FontId = (UInt32Value)1U, Type = PhoneticValues.NoConversion };
                PageMargins pageMargins1 = new PageMargins(){ Left = 0.7D, Right = 0.7D, Top = 0.75D, Bottom = 0.75D, Header = 0.3D, Footer = 0.3D };
    
                worksheet1.Append(sheetDimension1);
                worksheet1.Append(sheetViews1);
                worksheet1.Append(sheetFormatProperties1);
                worksheet1.Append(sheetData1);
                worksheet1.Append(phoneticProperties1);
                worksheet1.Append(pageMargins1);
    
                worksheetPart1.Worksheet = worksheet1;
            }
    
      // Generates content of worksheetPart2.
            private void GenerateWorksheetPart2Content(WorksheetPart worksheetPart2)
            {
                Worksheet worksheet2 = new Worksheet(){ MCAttributes = new MarkupCompatibilityAttributes(){ Ignorable = "x14ac" }  };
                worksheet2.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
                worksheet2.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
                worksheet2.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
                SheetDimension sheetDimension2 = new SheetDimension(){ Reference = "A1" };
    
                SheetViews sheetViews2 = new SheetViews();
                SheetView sheetView2 = new SheetView(){ WorkbookViewId = (UInt32Value)0U };
    
                sheetViews2.Append(sheetView2);
                SheetFormatProperties sheetFormatProperties2 = new SheetFormatProperties(){ DefaultRowHeight = 13.5D, DyDescent = 0.15D };
                SheetData sheetData2 = new SheetData();
                PhoneticProperties phoneticProperties2 = new PhoneticProperties(){ FontId = (UInt32Value)1U, Type = PhoneticValues.NoConversion };
                PageMargins pageMargins2 = new PageMargins(){ Left = 0.7D, Right = 0.7D, Top = 0.75D, Bottom = 0.75D, Header = 0.3D, Footer = 0.3D };
    
                worksheet2.Append(sheetDimension2);
                worksheet2.Append(sheetViews2);
                worksheet2.Append(sheetFormatProperties2);
                worksheet2.Append(sheetData2);
                worksheet2.Append(phoneticProperties2);
                worksheet2.Append(pageMargins2);
    
                worksheetPart2.Worksheet = worksheet2;
            }
    
            // Generates content of worksheetPart3.
            private void GenerateWorksheetPart3Content(WorksheetPart worksheetPart3)
            {
                Worksheet worksheet3 = new Worksheet(){ MCAttributes = new MarkupCompatibilityAttributes(){ Ignorable = "x14ac" }  };
                worksheet3.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
                worksheet3.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
                worksheet3.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
                SheetDimension sheetDimension3 = new SheetDimension(){ Reference = "A1:D23" };
    
                SheetViews sheetViews3 = new SheetViews();
    
                SheetView sheetView3 = new SheetView(){ TabSelected = true, WorkbookViewId = (UInt32Value)0U };
                Selection selection1 = new Selection(){ ActiveCell = "D10", SequenceOfReferences = new ListValue<StringValue>() { InnerText = "D10" } };
    
                sheetView3.Append(selection1);
    
                sheetViews3.Append(sheetView3);
                SheetFormatProperties sheetFormatProperties3 = new SheetFormatProperties(){ DefaultRowHeight = 13.5D, DyDescent = 0.15D };
    
                Columns columns1 = new Columns();
                Column column1 = new Column(){ Min = (UInt32Value)1U, Max = (UInt32Value)1U, Width = 25.25D, CustomWidth = true };
                Column column2 = new Column(){ Min = (UInt32Value)2U, Max = (UInt32Value)2U, Width = 35D, CustomWidth = true };
                Column column3 = new Column(){ Min = (UInt32Value)3U, Max = (UInt32Value)3U, Width = 20.125D, CustomWidth = true };
                Column column4 = new Column(){ Min = (UInt32Value)4U, Max = (UInt32Value)4U, Width = 58.125D, CustomWidth = true };
    
                columns1.Append(column1);
                columns1.Append(column2);
                columns1.Append(column3);
                columns1.Append(column4);
    
                SheetData sheetData3 = new SheetData();
    
                Row row1 = new Row(){ RowIndex = (UInt32Value)1U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 24D, CustomHeight = true, DyDescent = 0.15D };
    
                Cell cell1 = new Cell(){ CellReference = "A1", StyleIndex = (UInt32Value)2U, DataType = CellValues.SharedString };
                CellValue cellValue1 = new CellValue();
                cellValue1.Text = "0";
    
                cell1.Append(cellValue1);
                Cell cell2 = new Cell(){ CellReference = "B1", StyleIndex = (UInt32Value)2U };
                Cell cell3 = new Cell(){ CellReference = "C1", StyleIndex = (UInt32Value)2U };
                Cell cell4 = new Cell(){ CellReference = "D1", StyleIndex = (UInt32Value)2U };
    
                row1.Append(cell1);
                row1.Append(cell2);
                row1.Append(cell3);
                row1.Append(cell4);
    
                Row row2 = new Row(){ RowIndex = (UInt32Value)2U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
    
                Cell cell5 = new Cell(){ CellReference = "A2", StyleIndex = (UInt32Value)1U, DataType = CellValues.SharedString };
                CellValue cellValue2 = new CellValue();
                cellValue2.Text = "1";
    
                cell5.Append(cellValue2);
    
                Cell cell6 = new Cell(){ CellReference = "B2", StyleIndex = (UInt32Value)1U, DataType = CellValues.SharedString };
                CellValue cellValue3 = new CellValue();
                cellValue3.Text = "2";
    
                cell6.Append(cellValue3);
    
                Cell cell7 = new Cell(){ CellReference = "C2", StyleIndex = (UInt32Value)1U, DataType = CellValues.SharedString };
                CellValue cellValue4 = new CellValue();
                cellValue4.Text = "3";
    
                cell7.Append(cellValue4);
    
                Cell cell8 = new Cell(){ CellReference = "D2", StyleIndex = (UInt32Value)1U, DataType = CellValues.SharedString };
                CellValue cellValue5 = new CellValue();
                cellValue5.Text = "4";
    
                cell8.Append(cellValue5);
    
                row2.Append(cell5);
                row2.Append(cell6);
                row2.Append(cell7);
                row2.Append(cell8);
                Row row3 = new Row(){ RowIndex = (UInt32Value)3U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row4 = new Row(){ RowIndex = (UInt32Value)4U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row5 = new Row(){ RowIndex = (UInt32Value)6U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row6 = new Row(){ RowIndex = (UInt32Value)8U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row7 = new Row(){ RowIndex = (UInt32Value)11U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row8 = new Row(){ RowIndex = (UInt32Value)12U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row9 = new Row(){ RowIndex = (UInt32Value)13U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row10 = new Row(){ RowIndex = (UInt32Value)14U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row11 = new Row(){ RowIndex = (UInt32Value)15U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row12 = new Row(){ RowIndex = (UInt32Value)16U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 15.75D, DyDescent = 0.15D };
                Row row13 = new Row(){ RowIndex = (UInt32Value)18U, Height = 15.75D, DyDescent = 0.15D };
                Row row14 = new Row(){ RowIndex = (UInt32Value)19U, Height = 15.75D, DyDescent = 0.15D };
                Row row15 = new Row(){ RowIndex = (UInt32Value)20U, Height = 15.75D, DyDescent = 0.15D };
                Row row16 = new Row(){ RowIndex = (UInt32Value)21U, Height = 15.75D, DyDescent = 0.15D };
                Row row17 = new Row(){ RowIndex = (UInt32Value)22U, Height = 15.75D, DyDescent = 0.15D };
                Row row18 = new Row(){ RowIndex = (UInt32Value)23U, Height = 15.75D, DyDescent = 0.15D };
    
                sheetData3.Append(row1);
                sheetData3.Append(row2);
                sheetData3.Append(row3);
                sheetData3.Append(row4);
                sheetData3.Append(row5);
                sheetData3.Append(row6);
                sheetData3.Append(row7);
                sheetData3.Append(row8);
                sheetData3.Append(row9);
                sheetData3.Append(row10);
                sheetData3.Append(row11);
                sheetData3.Append(row12);
                sheetData3.Append(row13);
                sheetData3.Append(row14);
                sheetData3.Append(row15);
                sheetData3.Append(row16);
                sheetData3.Append(row17);
                sheetData3.Append(row18);
    
                MergeCells mergeCells1 = new MergeCells(){ Count = (UInt32Value)1U };
                MergeCell mergeCell1 = new MergeCell(){ Reference = "A1:D1" };
    
                mergeCells1.Append(mergeCell1);
                PhoneticProperties phoneticProperties3 = new PhoneticProperties(){ FontId = (UInt32Value)1U, Type = PhoneticValues.NoConversion };
                PageMargins pageMargins3 = new PageMargins(){ Left = 0.7D, Right = 0.7D, Top = 0.75D, Bottom = 0.75D, Header = 0.3D, Footer = 0.3D };
                PageSetup pageSetup1 = new PageSetup(){ PaperSize = (UInt32Value)9U, Orientation = OrientationValues.Portrait, Id = "rId1" };
    
                worksheet3.Append(sheetDimension3);
                worksheet3.Append(sheetViews3);
                worksheet3.Append(sheetFormatProperties3);
                worksheet3.Append(columns1);
                worksheet3.Append(sheetData3);
                worksheet3.Append(mergeCells1);
                worksheet3.Append(phoneticProperties3);
                worksheet3.Append(pageMargins3);
                worksheet3.Append(pageSetup1);
    
                worksheetPart3.Worksheet = worksheet3;
            }
    
            // Generates content of spreadsheetPrinterSettingsPart1.
            private void GenerateSpreadsheetPrinterSettingsPart1Content(SpreadsheetPrinterSettingsPart spreadsheetPrinterSettingsPart1)
            {
                System.IO.Stream data = GetBinaryDataStream(spreadsheetPrinterSettingsPart1Data);
                spreadsheetPrinterSettingsPart1.FeedData(data);
                data.Close();
            }
    
            // Generates content of sharedStringTablePart1.
            private void GenerateSharedStringTablePart1Content(SharedStringTablePart sharedStringTablePart1)
            {
                SharedStringTable sharedStringTable1 = new SharedStringTable(){ Count = (UInt32Value)5U, UniqueCount = (UInt32Value)5U };
    
                SharedStringItem sharedStringItem1 = new SharedStringItem();
                Text text1 = new Text();
                text1.Text = "用户信息列表";
    
                sharedStringItem1.Append(text1);
    
                SharedStringItem sharedStringItem2 = new SharedStringItem();
                Text text2 = new Text();
                text2.Text = "用户编号";
    
                sharedStringItem2.Append(text2);
    
                SharedStringItem sharedStringItem3 = new SharedStringItem();
                Text text3 = new Text();
                text3.Text = "公司名称";
    
                sharedStringItem3.Append(text3);
    
                SharedStringItem sharedStringItem4 = new SharedStringItem();
                Text text4 = new Text();
                text4.Text = "联系标题";
    
                sharedStringItem4.Append(text4);
    
                SharedStringItem sharedStringItem5 = new SharedStringItem();
                Text text5 = new Text();
                text5.Text = "联系人名称";
    
                sharedStringItem5.Append(text5);
    
                sharedStringTable1.Append(sharedStringItem1);
                sharedStringTable1.Append(sharedStringItem2);
                sharedStringTable1.Append(sharedStringItem3);
                sharedStringTable1.Append(sharedStringItem4);
                sharedStringTable1.Append(sharedStringItem5);
    
                sharedStringTablePart1.SharedStringTable = sharedStringTable1;
            }
    
            // Generates content of workbookStylesPart1.
            private void GenerateWorkbookStylesPart1Content(WorkbookStylesPart workbookStylesPart1)
            {
                Stylesheet stylesheet1 = new Stylesheet(){ MCAttributes = new MarkupCompatibilityAttributes(){ Ignorable = "x14ac" }  };
                stylesheet1.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
                stylesheet1.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
    
                Fonts fonts1 = new Fonts(){ Count = (UInt32Value)4U, KnownFonts = true };
    
                Font font1 = new Font();
                FontSize fontSize1 = new FontSize(){ Val = 11D };
                Color color1 = new Color(){ Theme = (UInt32Value)1U };
                FontName fontName1 = new FontName(){ Val = "宋体" };
                FontFamilyNumbering fontFamilyNumbering1 = new FontFamilyNumbering(){ Val = 2 };
                FontCharSet fontCharSet1 = new FontCharSet(){ Val = 134 };
                FontScheme fontScheme1 = new FontScheme(){ Val = FontSchemeValues.Minor };
    
                font1.Append(fontSize1);
                font1.Append(color1);
                font1.Append(fontName1);
                font1.Append(fontFamilyNumbering1);
                font1.Append(fontCharSet1);
                font1.Append(fontScheme1);
    
                Font font2 = new Font();
                FontSize fontSize2 = new FontSize(){ Val = 9D };
                FontName fontName2 = new FontName(){ Val = "宋体" };
                FontFamilyNumbering fontFamilyNumbering2 = new FontFamilyNumbering(){ Val = 2 };
                FontCharSet fontCharSet2 = new FontCharSet(){ Val = 134 };
                FontScheme fontScheme2 = new FontScheme(){ Val = FontSchemeValues.Minor };
    
                font2.Append(fontSize2);
                font2.Append(fontName2);
                font2.Append(fontFamilyNumbering2);
                font2.Append(fontCharSet2);
                font2.Append(fontScheme2);
    
                Font font3 = new Font();
                Bold bold1 = new Bold();
                FontSize fontSize3 = new FontSize(){ Val = 16D };
                Color color2 = new Color(){ Theme = (UInt32Value)1U };
                FontName fontName3 = new FontName(){ Val = "宋体" };
                FontFamilyNumbering fontFamilyNumbering3 = new FontFamilyNumbering(){ Val = 3 };
                FontCharSet fontCharSet3 = new FontCharSet(){ Val = 134 };
                FontScheme fontScheme3 = new FontScheme(){ Val = FontSchemeValues.Minor };
    
                font3.Append(bold1);
                font3.Append(fontSize3);
                font3.Append(color2);
                font3.Append(fontName3);
                font3.Append(fontFamilyNumbering3);
                font3.Append(fontCharSet3);
                font3.Append(fontScheme3);
    
                Font font4 = new Font();
                FontSize fontSize4 = new FontSize(){ Val = 11D };
                Color color3 = new Color(){ Theme = (UInt32Value)1U };
                FontName fontName4 = new FontName(){ Val = "华文中宋" };
                FontFamilyNumbering fontFamilyNumbering4 = new FontFamilyNumbering(){ Val = 3 };
                FontCharSet fontCharSet4 = new FontCharSet(){ Val = 134 };
    
                font4.Append(fontSize4);
                font4.Append(color3);
                font4.Append(fontName4);
                font4.Append(fontFamilyNumbering4);
                font4.Append(fontCharSet4);
    
                fonts1.Append(font1);
                fonts1.Append(font2);
                fonts1.Append(font3);
                fonts1.Append(font4);
    
                Fills fills1 = new Fills(){ Count = (UInt32Value)2U };
    
                Fill fill1 = new Fill();
                PatternFill patternFill1 = new PatternFill(){ PatternType = PatternValues.None };
    
                fill1.Append(patternFill1);
    
                Fill fill2 = new Fill();
                PatternFill patternFill2 = new PatternFill(){ PatternType = PatternValues.Gray125 };
    
                fill2.Append(patternFill2);
    
                fills1.Append(fill1);
                fills1.Append(fill2);
    
                Borders borders1 = new Borders(){ Count = (UInt32Value)1U };
    
                Border border1 = new Border();
                LeftBorder leftBorder1 = new LeftBorder();
                RightBorder rightBorder1 = new RightBorder();
                TopBorder topBorder1 = new TopBorder();
                BottomBorder bottomBorder1 = new BottomBorder();
                DiagonalBorder diagonalBorder1 = new DiagonalBorder();
    
                border1.Append(leftBorder1);
                border1.Append(rightBorder1);
                border1.Append(topBorder1);
                border1.Append(bottomBorder1);
                border1.Append(diagonalBorder1);
    
                borders1.Append(border1);
    
                CellStyleFormats cellStyleFormats1 = new CellStyleFormats(){ Count = (UInt32Value)1U };
    
                CellFormat cellFormat1 = new CellFormat(){ NumberFormatId = (UInt32Value)0U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U };
                Alignment alignment1 = new Alignment(){ Vertical = VerticalAlignmentValues.Center };
    
                cellFormat1.Append(alignment1);
    
                cellStyleFormats1.Append(cellFormat1);
    
                CellFormats cellFormats1 = new CellFormats(){ Count = (UInt32Value)3U };
    
                CellFormat cellFormat2 = new CellFormat(){ NumberFormatId = (UInt32Value)0U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U };
                Alignment alignment2 = new Alignment(){ Vertical = VerticalAlignmentValues.Center };
    
                cellFormat2.Append(alignment2);
    
                CellFormat cellFormat3 = new CellFormat(){ NumberFormatId = (UInt32Value)0U, FontId = (UInt32Value)3U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U, ApplyFont = true };
                Alignment alignment3 = new Alignment(){ Vertical = VerticalAlignmentValues.Center };
    
                cellFormat3.Append(alignment3);
    
                CellFormat cellFormat4 = new CellFormat(){ NumberFormatId = (UInt32Value)0U, FontId = (UInt32Value)2U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U, ApplyFont = true, ApplyAlignment = true };
                Alignment alignment4 = new Alignment(){ Horizontal = HorizontalAlignmentValues.Center, Vertical = VerticalAlignmentValues.Center };
    
                cellFormat4.Append(alignment4);
    
                cellFormats1.Append(cellFormat2);
                cellFormats1.Append(cellFormat3);
                cellFormats1.Append(cellFormat4);
    
                CellStyles cellStyles1 = new CellStyles(){ Count = (UInt32Value)1U };
                CellStyle cellStyle1 = new CellStyle(){ Name = "常规", FormatId = (UInt32Value)0U, BuiltinId = (UInt32Value)0U };
    
                cellStyles1.Append(cellStyle1);
                DifferentialFormats differentialFormats1 = new DifferentialFormats(){ Count = (UInt32Value)0U };
                TableStyles tableStyles1 = new TableStyles(){ Count = (UInt32Value)0U, DefaultTableStyle = "TableStyleMedium2", DefaultPivotStyle = "PivotStyleLight16" };
    
                StylesheetExtensionList stylesheetExtensionList1 = new StylesheetExtensionList();
    
                StylesheetExtension stylesheetExtension1 = new StylesheetExtension(){ Uri = "{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" };
                stylesheetExtension1.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main");
                X14.SlicerStyles slicerStyles1 = new X14.SlicerStyles(){ DefaultSlicerStyle = "SlicerStyleLight1" };
    
                stylesheetExtension1.Append(slicerStyles1);
    
                stylesheetExtensionList1.Append(stylesheetExtension1);
    
                stylesheet1.Append(fonts1);
                stylesheet1.Append(fills1);
                stylesheet1.Append(borders1);
                stylesheet1.Append(cellStyleFormats1);
                stylesheet1.Append(cellFormats1);
                stylesheet1.Append(cellStyles1);
                stylesheet1.Append(differentialFormats1);
                stylesheet1.Append(tableStyles1);
                stylesheet1.Append(stylesheetExtensionList1);
    
                workbookStylesPart1.Stylesheet = stylesheet1;
            }
    
      // Generates content of themePart1.
            private void GenerateThemePart1Content(ThemePart themePart1)
            {
                A.Theme theme1 = new A.Theme(){ Name = "Office 主题​​" };
                theme1.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006/main");
    
                A.ThemeElements themeElements1 = new A.ThemeElements();
    
                A.ColorScheme colorScheme1 = new A.ColorScheme(){ Name = "Office" };
    
                A.Dark1Color dark1Color1 = new A.Dark1Color();
                A.SystemColor systemColor1 = new A.SystemColor(){ Val = A.SystemColorValues.WindowText, LastColor = "000000" };
    
                dark1Color1.Append(systemColor1);
    
                A.Light1Color light1Color1 = new A.Light1Color();
                A.SystemColor systemColor2 = new A.SystemColor(){ Val = A.SystemColorValues.Window, LastColor = "FFFFFF" };
    
                light1Color1.Append(systemColor2);
    
                A.Dark2Color dark2Color1 = new A.Dark2Color();
                A.RgbColorModelHex rgbColorModelHex1 = new A.RgbColorModelHex(){ Val = "1F497D" };
    
                dark2Color1.Append(rgbColorModelHex1);
    
                A.Light2Color light2Color1 = new A.Light2Color();
                A.RgbColorModelHex rgbColorModelHex2 = new A.RgbColorModelHex(){ Val = "EEECE1" };
    
                light2Color1.Append(rgbColorModelHex2);
    
                A.Accent1Color accent1Color1 = new A.Accent1Color();
                A.RgbColorModelHex rgbColorModelHex3 = new A.RgbColorModelHex(){ Val = "4F81BD" };
    
                accent1Color1.Append(rgbColorModelHex3);
    
                A.Accent2Color accent2Color1 = new A.Accent2Color();
                A.RgbColorModelHex rgbColorModelHex4 = new A.RgbColorModelHex(){ Val = "C0504D" };
    
                accent2Color1.Append(rgbColorModelHex4);
    
                A.Accent3Color accent3Color1 = new A.Accent3Color();
                A.RgbColorModelHex rgbColorModelHex5 = new A.RgbColorModelHex(){ Val = "9BBB59" };
    
                accent3Color1.Append(rgbColorModelHex5);
    
                A.Accent4Color accent4Color1 = new A.Accent4Color();
                A.RgbColorModelHex rgbColorModelHex6 = new A.RgbColorModelHex(){ Val = "8064A2" };
    
                accent4Color1.Append(rgbColorModelHex6);
    
                A.Accent5Color accent5Color1 = new A.Accent5Color();
                A.RgbColorModelHex rgbColorModelHex7 = new A.RgbColorModelHex(){ Val = "4BACC6" };
    
                accent5Color1.Append(rgbColorModelHex7);
    
                A.Accent6Color accent6Color1 = new A.Accent6Color();
                A.RgbColorModelHex rgbColorModelHex8 = new A.RgbColorModelHex(){ Val = "F79646" };
    
                accent6Color1.Append(rgbColorModelHex8);
    
                A.Hyperlink hyperlink1 = new A.Hyperlink();
                A.RgbColorModelHex rgbColorModelHex9 = new A.RgbColorModelHex(){ Val = "0000FF" };
    
                hyperlink1.Append(rgbColorModelHex9);
    
                A.FollowedHyperlinkColor followedHyperlinkColor1 = new A.FollowedHyperlinkColor();
                A.RgbColorModelHex rgbColorModelHex10 = new A.RgbColorModelHex(){ Val = "800080" };
    
                followedHyperlinkColor1.Append(rgbColorModelHex10);
    
                colorScheme1.Append(dark1Color1);
                colorScheme1.Append(light1Color1);
                colorScheme1.Append(dark2Color1);
                colorScheme1.Append(light2Color1);
                colorScheme1.Append(accent1Color1);
                colorScheme1.Append(accent2Color1);
                colorScheme1.Append(accent3Color1);
                colorScheme1.Append(accent4Color1);
                colorScheme1.Append(accent5Color1);
                colorScheme1.Append(accent6Color1);
                colorScheme1.Append(hyperlink1);
                colorScheme1.Append(followedHyperlinkColor1);
    
                A.FontScheme fontScheme4 = new A.FontScheme(){ Name = "Office" };
    
                A.MajorFont majorFont1 = new A.MajorFont();
                A.LatinFont latinFont1 = new A.LatinFont(){ Typeface = "Cambria" };
                A.EastAsianFont eastAsianFont1 = new A.EastAsianFont(){ Typeface = "" };
                A.ComplexScriptFont complexScriptFont1 = new A.ComplexScriptFont(){ Typeface = "" };
                A.SupplementalFont supplementalFont1 = new A.SupplementalFont(){ Script = "Jpan", Typeface = "MS Pゴシック" };
                A.SupplementalFont supplementalFont2 = new A.SupplementalFont(){ Script = "Hang", Typeface = "맑은 고딕" };
                A.SupplementalFont supplementalFont3 = new A.SupplementalFont(){ Script = "Hans", Typeface = "宋体" };
                A.SupplementalFont supplementalFont4 = new A.SupplementalFont(){ Script = "Hant", Typeface = "新細明體" };
                A.SupplementalFont supplementalFont5 = new A.SupplementalFont(){ Script = "Arab", Typeface = "Times New Roman" };
                A.SupplementalFont supplementalFont6 = new A.SupplementalFont(){ Script = "Hebr", Typeface = "Times New Roman" };
                A.SupplementalFont supplementalFont7 = new A.SupplementalFont(){ Script = "Thai", Typeface = "Tahoma" };
                A.SupplementalFont supplementalFont8 = new A.SupplementalFont(){ Script = "Ethi", Typeface = "Nyala" };
                A.SupplementalFont supplementalFont9 = new A.SupplementalFont(){ Script = "Beng", Typeface = "Vrinda" };
                A.SupplementalFont supplementalFont10 = new A.SupplementalFont(){ Script = "Gujr", Typeface = "Shruti" };
                A.SupplementalFont supplementalFont11 = new A.SupplementalFont(){ Script = "Khmr", Typeface = "MoolBoran" };
                A.SupplementalFont supplementalFont12 = new A.SupplementalFont(){ Script = "Knda", Typeface = "Tunga" };
                A.SupplementalFont supplementalFont13 = new A.SupplementalFont(){ Script = "Guru", Typeface = "Raavi" };
                A.SupplementalFont supplementalFont14 = new A.SupplementalFont(){ Script = "Cans", Typeface = "Euphemia" };
                A.SupplementalFont supplementalFont15 = new A.SupplementalFont(){ Script = "Cher", Typeface = "Plantagenet Cherokee" };
                A.SupplementalFont supplementalFont16 = new A.SupplementalFont(){ Script = "Yiii", Typeface = "Microsoft Yi Baiti" };
                A.SupplementalFont supplementalFont17 = new A.SupplementalFont(){ Script = "Tibt", Typeface = "Microsoft Himalaya" };
                A.SupplementalFont supplementalFont18 = new A.SupplementalFont(){ Script = "Thaa", Typeface = "MV Boli" };
                A.SupplementalFont supplementalFont19 = new A.SupplementalFont(){ Script = "Deva", Typeface = "Mangal" };
                A.SupplementalFont supplementalFont20 = new A.SupplementalFont(){ Script = "Telu", Typeface = "Gautami" };
                A.SupplementalFont supplementalFont21 = new A.SupplementalFont(){ Script = "Taml", Typeface = "Latha" };
                A.SupplementalFont supplementalFont22 = new A.SupplementalFont(){ Script = "Syrc", Typeface = "Estrangelo Edessa" };
                A.SupplementalFont supplementalFont23 = new A.SupplementalFont(){ Script = "Orya", Typeface = "Kalinga" };
                A.SupplementalFont supplementalFont24 = new A.SupplementalFont(){ Script = "Mlym", Typeface = "Kartika" };
                A.SupplementalFont supplementalFont25 = new A.SupplementalFont(){ Script = "Laoo", Typeface = "DokChampa" };
                A.SupplementalFont supplementalFont26 = new A.SupplementalFont(){ Script = "Sinh", Typeface = "Iskoola Pota" };
                A.SupplementalFont supplementalFont27 = new A.SupplementalFont(){ Script = "Mong", Typeface = "Mongolian Baiti" };
                A.SupplementalFont supplementalFont28 = new A.SupplementalFont(){ Script = "Viet", Typeface = "Times New Roman" };
                A.SupplementalFont supplementalFont29 = new A.SupplementalFont(){ Script = "Uigh", Typeface = "Microsoft Uighur" };
                A.SupplementalFont supplementalFont30 = new A.SupplementalFont(){ Script = "Geor", Typeface = "Sylfaen" };
    
                majorFont1.Append(latinFont1);
                majorFont1.Append(eastAsianFont1);
                majorFont1.Append(complexScriptFont1);
                majorFont1.Append(supplementalFont1);
                majorFont1.Append(supplementalFont2);
                majorFont1.Append(supplementalFont3);
                majorFont1.Append(supplementalFont4);
                majorFont1.Append(supplementalFont5);
                majorFont1.Append(supplementalFont6);
                majorFont1.Append(supplementalFont7);
                majorFont1.Append(supplementalFont8);
                majorFont1.Append(supplementalFont9);
                majorFont1.Append(supplementalFont10);
                majorFont1.Append(supplementalFont11);
                majorFont1.Append(supplementalFont12);
                majorFont1.Append(supplementalFont13);
                majorFont1.Append(supplementalFont14);
                majorFont1.Append(supplementalFont15);
                majorFont1.Append(supplementalFont16);
                majorFont1.Append(supplementalFont17);
                majorFont1.Append(supplementalFont18);
                majorFont1.Append(supplementalFont19);
                majorFont1.Append(supplementalFont20);
                majorFont1.Append(supplementalFont21);
                majorFont1.Append(supplementalFont22);
                majorFont1.Append(supplementalFont23);
                majorFont1.Append(supplementalFont24);
                majorFont1.Append(supplementalFont25);
                majorFont1.Append(supplementalFont26);
                majorFont1.Append(supplementalFont27);
                majorFont1.Append(supplementalFont28);
                majorFont1.Append(supplementalFont29);
                majorFont1.Append(supplementalFont30);
    
                A.MinorFont minorFont1 = new A.MinorFont();
                A.LatinFont latinFont2 = new A.LatinFont(){ Typeface = "Calibri" };
                A.EastAsianFont eastAsianFont2 = new A.EastAsianFont(){ Typeface = "" };
                A.ComplexScriptFont complexScriptFont2 = new A.ComplexScriptFont(){ Typeface = "" };
                A.SupplementalFont supplementalFont31 = new A.SupplementalFont(){ Script = "Jpan", Typeface = "MS Pゴシック" };
                A.SupplementalFont supplementalFont32 = new A.SupplementalFont(){ Script = "Hang", Typeface = "맑은 고딕" };
                A.SupplementalFont supplementalFont33 = new A.SupplementalFont(){ Script = "Hans", Typeface = "宋体" };
                A.SupplementalFont supplementalFont34 = new A.SupplementalFont(){ Script = "Hant", Typeface = "新細明體" };
                A.SupplementalFont supplementalFont35 = new A.SupplementalFont(){ Script = "Arab", Typeface = "Arial" };
                A.SupplementalFont supplementalFont36 = new A.SupplementalFont(){ Script = "Hebr", Typeface = "Arial" };
                A.SupplementalFont supplementalFont37 = new A.SupplementalFont(){ Script = "Thai", Typeface = "Tahoma" };
                A.SupplementalFont supplementalFont38 = new A.SupplementalFont(){ Script = "Ethi", Typeface = "Nyala" };
                A.SupplementalFont supplementalFont39 = new A.SupplementalFont(){ Script = "Beng", Typeface = "Vrinda" };
                A.SupplementalFont supplementalFont40 = new A.SupplementalFont(){ Script = "Gujr", Typeface = "Shruti" };
                A.SupplementalFont supplementalFont41 = new A.SupplementalFont(){ Script = "Khmr", Typeface = "DaunPenh" };
                A.SupplementalFont supplementalFont42 = new A.SupplementalFont(){ Script = "Knda", Typeface = "Tunga" };
                A.SupplementalFont supplementalFont43 = new A.SupplementalFont(){ Script = "Guru", Typeface = "Raavi" };
                A.SupplementalFont supplementalFont44 = new A.SupplementalFont(){ Script = "Cans", Typeface = "Euphemia" };
                A.SupplementalFont supplementalFont45 = new A.SupplementalFont(){ Script = "Cher", Typeface = "Plantagenet Cherokee" };
                A.SupplementalFont supplementalFont46 = new A.SupplementalFont(){ Script = "Yiii", Typeface = "Microsoft Yi Baiti" };
                A.SupplementalFont supplementalFont47 = new A.SupplementalFont(){ Script = "Tibt", Typeface = "Microsoft Himalaya" };
                A.SupplementalFont supplementalFont48 = new A.SupplementalFont(){ Script = "Thaa", Typeface = "MV Boli" };
                A.SupplementalFont supplementalFont49 = new A.SupplementalFont(){ Script = "Deva", Typeface = "Mangal" };
                A.SupplementalFont supplementalFont50 = new A.SupplementalFont(){ Script = "Telu", Typeface = "Gautami" };
                A.SupplementalFont supplementalFont51 = new A.SupplementalFont(){ Script = "Taml", Typeface = "Latha" };
                A.SupplementalFont supplementalFont52 = new A.SupplementalFont(){ Script = "Syrc", Typeface = "Estrangelo Edessa" };
                A.SupplementalFont supplementalFont53 = new A.SupplementalFont(){ Script = "Orya", Typeface = "Kalinga" };
                A.SupplementalFont supplementalFont54 = new A.SupplementalFont(){ Script = "Mlym", Typeface = "Kartika" };
                A.SupplementalFont supplementalFont55 = new A.SupplementalFont(){ Script = "Laoo", Typeface = "DokChampa" };
                A.SupplementalFont supplementalFont56 = new A.SupplementalFont(){ Script = "Sinh", Typeface = "Iskoola Pota" };
                A.SupplementalFont supplementalFont57 = new A.SupplementalFont(){ Script = "Mong", Typeface = "Mongolian Baiti" };
                A.SupplementalFont supplementalFont58 = new A.SupplementalFont(){ Script = "Viet", Typeface = "Arial" };
                A.SupplementalFont supplementalFont59 = new A.SupplementalFont(){ Script = "Uigh", Typeface = "Microsoft Uighur" };
                A.SupplementalFont supplementalFont60 = new A.SupplementalFont(){ Script = "Geor", Typeface = "Sylfaen" };
    
                minorFont1.Append(latinFont2);
                minorFont1.Append(eastAsianFont2);
                minorFont1.Append(complexScriptFont2);
                minorFont1.Append(supplementalFont31);
                minorFont1.Append(supplementalFont32);
                minorFont1.Append(supplementalFont33);
                minorFont1.Append(supplementalFont34);
                minorFont1.Append(supplementalFont35);
                minorFont1.Append(supplementalFont36);
                minorFont1.Append(supplementalFont37);
                minorFont1.Append(supplementalFont38);
                minorFont1.Append(supplementalFont39);
                minorFont1.Append(supplementalFont40);
                minorFont1.Append(supplementalFont41);
                minorFont1.Append(supplementalFont42);
                minorFont1.Append(supplementalFont43);
                minorFont1.Append(supplementalFont44);
                minorFont1.Append(supplementalFont45);
                minorFont1.Append(supplementalFont46);
                minorFont1.Append(supplementalFont47);
                minorFont1.Append(supplementalFont48);
                minorFont1.Append(supplementalFont49);
                minorFont1.Append(supplementalFont50);
                minorFont1.Append(supplementalFont51);
                minorFont1.Append(supplementalFont52);
                minorFont1.Append(supplementalFont53);
                minorFont1.Append(supplementalFont54);
                minorFont1.Append(supplementalFont55);
                minorFont1.Append(supplementalFont56);
                minorFont1.Append(supplementalFont57);
                minorFont1.Append(supplementalFont58);
                minorFont1.Append(supplementalFont59);
                minorFont1.Append(supplementalFont60);
    
                fontScheme4.Append(majorFont1);
                fontScheme4.Append(minorFont1);
    
                A.FormatScheme formatScheme1 = new A.FormatScheme(){ Name = "Office" };
    
                A.FillStyleList fillStyleList1 = new A.FillStyleList();
    
                A.SolidFill solidFill1 = new A.SolidFill();
                A.SchemeColor schemeColor1 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
    
                solidFill1.Append(schemeColor1);
    
                A.GradientFill gradientFill1 = new A.GradientFill(){ RotateWithShape = true };
    
                A.GradientStopList gradientStopList1 = new A.GradientStopList();
    
                A.GradientStop gradientStop1 = new A.GradientStop(){ Position = 0 };
    
                A.SchemeColor schemeColor2 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Tint tint1 = new A.Tint(){ Val = 50000 };
                A.SaturationModulation saturationModulation1 = new A.SaturationModulation(){ Val = 300000 };
    
                schemeColor2.Append(tint1);
                schemeColor2.Append(saturationModulation1);
    
                gradientStop1.Append(schemeColor2);
    
                A.GradientStop gradientStop2 = new A.GradientStop(){ Position = 35000 };
    
                A.SchemeColor schemeColor3 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Tint tint2 = new A.Tint(){ Val = 37000 };
                A.SaturationModulation saturationModulation2 = new A.SaturationModulation(){ Val = 300000 };
    
                schemeColor3.Append(tint2);
                schemeColor3.Append(saturationModulation2);
    
                gradientStop2.Append(schemeColor3);
    
                A.GradientStop gradientStop3 = new A.GradientStop(){ Position = 100000 };
    
                A.SchemeColor schemeColor4 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Tint tint3 = new A.Tint(){ Val = 15000 };
                A.SaturationModulation saturationModulation3 = new A.SaturationModulation(){ Val = 350000 };
    
                schemeColor4.Append(tint3);
                schemeColor4.Append(saturationModulation3);
    
                gradientStop3.Append(schemeColor4);
    
                gradientStopList1.Append(gradientStop1);
                gradientStopList1.Append(gradientStop2);
                gradientStopList1.Append(gradientStop3);
                A.LinearGradientFill linearGradientFill1 = new A.LinearGradientFill(){ Angle = 16200000, Scaled = true };
    
                gradientFill1.Append(gradientStopList1);
                gradientFill1.Append(linearGradientFill1);
    
                A.GradientFill gradientFill2 = new A.GradientFill(){ RotateWithShape = true };
    
                A.GradientStopList gradientStopList2 = new A.GradientStopList();
    
                A.GradientStop gradientStop4 = new A.GradientStop(){ Position = 0 };
    
                A.SchemeColor schemeColor5 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Shade shade1 = new A.Shade(){ Val = 51000 };
                A.SaturationModulation saturationModulation4 = new A.SaturationModulation(){ Val = 130000 };
    
                schemeColor5.Append(shade1);
                schemeColor5.Append(saturationModulation4);
    
                gradientStop4.Append(schemeColor5);
    
                A.GradientStop gradientStop5 = new A.GradientStop(){ Position = 80000 };
    
                A.SchemeColor schemeColor6 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Shade shade2 = new A.Shade(){ Val = 93000 };
                A.SaturationModulation saturationModulation5 = new A.SaturationModulation(){ Val = 130000 };
    
                schemeColor6.Append(shade2);
                schemeColor6.Append(saturationModulation5);
    
                gradientStop5.Append(schemeColor6);
    
                A.GradientStop gradientStop6 = new A.GradientStop(){ Position = 100000 };
    
                A.SchemeColor schemeColor7 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Shade shade3 = new A.Shade(){ Val = 94000 };
                A.SaturationModulation saturationModulation6 = new A.SaturationModulation(){ Val = 135000 };
    
                schemeColor7.Append(shade3);
                schemeColor7.Append(saturationModulation6);
    
                gradientStop6.Append(schemeColor7);
    
                gradientStopList2.Append(gradientStop4);
                gradientStopList2.Append(gradientStop5);
                gradientStopList2.Append(gradientStop6);
                A.LinearGradientFill linearGradientFill2 = new A.LinearGradientFill(){ Angle = 16200000, Scaled = false };
    
                gradientFill2.Append(gradientStopList2);
                gradientFill2.Append(linearGradientFill2);
    
                fillStyleList1.Append(solidFill1);
                fillStyleList1.Append(gradientFill1);
                fillStyleList1.Append(gradientFill2);
    
                A.LineStyleList lineStyleList1 = new A.LineStyleList();
    
                A.Outline outline1 = new A.Outline(){ Width = 9525, CapType = A.LineCapValues.Flat, CompoundLineType = A.CompoundLineValues.Single, Alignment = A.PenAlignmentValues.Center };
    
                A.SolidFill solidFill2 = new A.SolidFill();
    
                A.SchemeColor schemeColor8 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Shade shade4 = new A.Shade(){ Val = 95000 };
                A.SaturationModulation saturationModulation7 = new A.SaturationModulation(){ Val = 105000 };
    
                schemeColor8.Append(shade4);
                schemeColor8.Append(saturationModulation7);
    
                solidFill2.Append(schemeColor8);
                A.PresetDash presetDash1 = new A.PresetDash(){ Val = A.PresetLineDashValues.Solid };
    
                outline1.Append(solidFill2);
                outline1.Append(presetDash1);
    
                A.Outline outline2 = new A.Outline(){ Width = 25400, CapType = A.LineCapValues.Flat, CompoundLineType = A.CompoundLineValues.Single, Alignment = A.PenAlignmentValues.Center };
    
                A.SolidFill solidFill3 = new A.SolidFill();
                A.SchemeColor schemeColor9 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
    
                solidFill3.Append(schemeColor9);
                A.PresetDash presetDash2 = new A.PresetDash(){ Val = A.PresetLineDashValues.Solid };
    
                outline2.Append(solidFill3);
                outline2.Append(presetDash2);
    
                A.Outline outline3 = new A.Outline(){ Width = 38100, CapType = A.LineCapValues.Flat, CompoundLineType = A.CompoundLineValues.Single, Alignment = A.PenAlignmentValues.Center };
    
                A.SolidFill solidFill4 = new A.SolidFill();
                A.SchemeColor schemeColor10 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
    
                solidFill4.Append(schemeColor10);
                A.PresetDash presetDash3 = new A.PresetDash(){ Val = A.PresetLineDashValues.Solid };
    
                outline3.Append(solidFill4);
                outline3.Append(presetDash3);
    
                lineStyleList1.Append(outline1);
                lineStyleList1.Append(outline2);
                lineStyleList1.Append(outline3);
    
                A.EffectStyleList effectStyleList1 = new A.EffectStyleList();
    
                A.EffectStyle effectStyle1 = new A.EffectStyle();
    
                A.EffectList effectList1 = new A.EffectList();
    
                A.OuterShadow outerShadow1 = new A.OuterShadow(){ BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false };
    
                A.RgbColorModelHex rgbColorModelHex11 = new A.RgbColorModelHex(){ Val = "000000" };
                A.Alpha alpha1 = new A.Alpha(){ Val = 38000 };
    
                rgbColorModelHex11.Append(alpha1);
    
                outerShadow1.Append(rgbColorModelHex11);
    
                effectList1.Append(outerShadow1);
    
                effectStyle1.Append(effectList1);
    
                A.EffectStyle effectStyle2 = new A.EffectStyle();
    
                A.EffectList effectList2 = new A.EffectList();
    
                A.OuterShadow outerShadow2 = new A.OuterShadow(){ BlurRadius = 40000L, Distance = 23000L, Direction = 5400000, RotateWithShape = false };
    
                A.RgbColorModelHex rgbColorModelHex12 = new A.RgbColorModelHex(){ Val = "000000" };
                A.Alpha alpha2 = new A.Alpha(){ Val = 35000 };
    
                rgbColorModelHex12.Append(alpha2);
    
                outerShadow2.Append(rgbColorModelHex12);
    
                effectList2.Append(outerShadow2);
    
                effectStyle2.Append(effectList2);
    
                A.EffectStyle effectStyle3 = new A.EffectStyle();
    
                A.EffectList effectList3 = new A.EffectList();
    
                A.OuterShadow outerShadow3 = new A.OuterShadow(){ BlurRadius = 40000L, Distance = 23000L, Direction = 5400000, RotateWithShape = false };
    
                A.RgbColorModelHex rgbColorModelHex13 = new A.RgbColorModelHex(){ Val = "000000" };
                A.Alpha alpha3 = new A.Alpha(){ Val = 35000 };
    
                rgbColorModelHex13.Append(alpha3);
    
                outerShadow3.Append(rgbColorModelHex13);
    
                effectList3.Append(outerShadow3);
    
                A.Scene3DType scene3DType1 = new A.Scene3DType();
    
                A.Camera camera1 = new A.Camera(){ Preset = A.PresetCameraValues.OrthographicFront };
                A.Rotation rotation1 = new A.Rotation(){ Latitude = 0, Longitude = 0, Revolution = 0 };
    
                camera1.Append(rotation1);
    
                A.LightRig lightRig1 = new A.LightRig(){ Rig = A.LightRigValues.ThreePoints, Direction = A.LightRigDirectionValues.Top };
                A.Rotation rotation2 = new A.Rotation(){ Latitude = 0, Longitude = 0, Revolution = 1200000 };
    
                lightRig1.Append(rotation2);
    
                scene3DType1.Append(camera1);
                scene3DType1.Append(lightRig1);
    
                A.Shape3DType shape3DType1 = new A.Shape3DType();
                A.BevelTop bevelTop1 = new A.BevelTop(){ Width = 63500L, Height = 25400L };
    
                shape3DType1.Append(bevelTop1);
    
                effectStyle3.Append(effectList3);
                effectStyle3.Append(scene3DType1);
                effectStyle3.Append(shape3DType1);
    
                effectStyleList1.Append(effectStyle1);
                effectStyleList1.Append(effectStyle2);
                effectStyleList1.Append(effectStyle3);
    
                A.BackgroundFillStyleList backgroundFillStyleList1 = new A.BackgroundFillStyleList();
    
                A.SolidFill solidFill5 = new A.SolidFill();
                A.SchemeColor schemeColor11 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
    
                solidFill5.Append(schemeColor11);
    
                A.GradientFill gradientFill3 = new A.GradientFill(){ RotateWithShape = true };
    
                A.GradientStopList gradientStopList3 = new A.GradientStopList();
    
                A.GradientStop gradientStop7 = new A.GradientStop(){ Position = 0 };
    
                A.SchemeColor schemeColor12 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Tint tint4 = new A.Tint(){ Val = 40000 };
                A.SaturationModulation saturationModulation8 = new A.SaturationModulation(){ Val = 350000 };
    
                schemeColor12.Append(tint4);
                schemeColor12.Append(saturationModulation8);
    
                gradientStop7.Append(schemeColor12);
    
                A.GradientStop gradientStop8 = new A.GradientStop(){ Position = 40000 };
    
                A.SchemeColor schemeColor13 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Tint tint5 = new A.Tint(){ Val = 45000 };
                A.Shade shade5 = new A.Shade(){ Val = 99000 };
                A.SaturationModulation saturationModulation9 = new A.SaturationModulation(){ Val = 350000 };
    
                schemeColor13.Append(tint5);
                schemeColor13.Append(shade5);
                schemeColor13.Append(saturationModulation9);
    
                gradientStop8.Append(schemeColor13);
    
                A.GradientStop gradientStop9 = new A.GradientStop(){ Position = 100000 };
    
                A.SchemeColor schemeColor14 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Shade shade6 = new A.Shade(){ Val = 20000 };
                A.SaturationModulation saturationModulation10 = new A.SaturationModulation(){ Val = 255000 };
    
                schemeColor14.Append(shade6);
                schemeColor14.Append(saturationModulation10);
    
                gradientStop9.Append(schemeColor14);
    
                gradientStopList3.Append(gradientStop7);
                gradientStopList3.Append(gradientStop8);
                gradientStopList3.Append(gradientStop9);
    
                A.PathGradientFill pathGradientFill1 = new A.PathGradientFill(){ Path = A.PathShadeValues.Circle };
                A.FillToRectangle fillToRectangle1 = new A.FillToRectangle(){ Left = 50000, Top = -80000, Right = 50000, Bottom = 180000 };
    
                pathGradientFill1.Append(fillToRectangle1);
    
                gradientFill3.Append(gradientStopList3);
                gradientFill3.Append(pathGradientFill1);
    
                A.GradientFill gradientFill4 = new A.GradientFill(){ RotateWithShape = true };
    
                A.GradientStopList gradientStopList4 = new A.GradientStopList();
    
                A.GradientStop gradientStop10 = new A.GradientStop(){ Position = 0 };
    
                A.SchemeColor schemeColor15 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Tint tint6 = new A.Tint(){ Val = 80000 };
                A.SaturationModulation saturationModulation11 = new A.SaturationModulation(){ Val = 300000 };
    
                schemeColor15.Append(tint6);
                schemeColor15.Append(saturationModulation11);
    
                gradientStop10.Append(schemeColor15);
    
                A.GradientStop gradientStop11 = new A.GradientStop(){ Position = 100000 };
    
                A.SchemeColor schemeColor16 = new A.SchemeColor(){ Val = A.SchemeColorValues.PhColor };
                A.Shade shade7 = new A.Shade(){ Val = 30000 };
                A.SaturationModulation saturationModulation12 = new A.SaturationModulation(){ Val = 200000 };
    
                schemeColor16.Append(shade7);
                schemeColor16.Append(saturationModulation12);
    
                gradientStop11.Append(schemeColor16);
    
                gradientStopList4.Append(gradientStop10);
                gradientStopList4.Append(gradientStop11);
    
                A.PathGradientFill pathGradientFill2 = new A.PathGradientFill(){ Path = A.PathShadeValues.Circle };
                A.FillToRectangle fillToRectangle2 = new A.FillToRectangle(){ Left = 50000, Top = 50000, Right = 50000, Bottom = 50000 };
    
                pathGradientFill2.Append(fillToRectangle2);
    
                gradientFill4.Append(gradientStopList4);
                gradientFill4.Append(pathGradientFill2);
    
                backgroundFillStyleList1.Append(solidFill5);
                backgroundFillStyleList1.Append(gradientFill3);
                backgroundFillStyleList1.Append(gradientFill4);
    
                formatScheme1.Append(fillStyleList1);
                formatScheme1.Append(lineStyleList1);
                formatScheme1.Append(effectStyleList1);
                formatScheme1.Append(backgroundFillStyleList1);
    
                themeElements1.Append(colorScheme1);
                themeElements1.Append(fontScheme4);
                themeElements1.Append(formatScheme1);
                A.ObjectDefaults objectDefaults1 = new A.ObjectDefaults();
                A.ExtraColorSchemeList extraColorSchemeList1 = new A.ExtraColorSchemeList();
    
                theme1.Append(themeElements1);
                theme1.Append(objectDefaults1);
                theme1.Append(extraColorSchemeList1);
    
                themePart1.Theme = theme1;
            }
    
        private void SetPackageProperties(OpenXmlPackage document)
            {
                document.PackageProperties.Creator = "Jim Tian";
                document.PackageProperties.Created = System.Xml.XmlConvert.ToDateTime("2015-01-27T07:53:29Z", System.Xml.XmlDateTimeSerializationMode.RoundtripKind);
                document.PackageProperties.Modified = System.Xml.XmlConvert.ToDateTime("2015-01-30T03:14:23Z", System.Xml.XmlDateTimeSerializationMode.RoundtripKind);
                document.PackageProperties.LastModifiedBy = "Jim Tian";
            }
    
            #region Binary Data
            private string spreadsheetPrinterSettingsPart1Data = "XABcADEAOQAyAC4AMQA2ADgALgAzADAALgAyADIAMABcAEIAdQBpAGwAZABpAG4AZwAgAEEAIABJAFQAAAAAAAEEAAbcAPg0Q++ABwEACQCaCzQIZAABAA8AWAICAAEAWAIDAAEAQQA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAABQBAAD/////==";
    
            private System.IO.Stream GetBinaryDataStream(string base64String)
            {
                return new System.IO.MemoryStream(System.Convert.FromBase64String(base64String));
            }
    
            #endregion
    
        }
    }
    
     

    步骤4、新建一个控制台应用程序,调用上述代码,生成自己新建的Excel

        class Program
        {
            static void Main(string[] args)
            {
                string currentPath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
                string filePath = Path.Combine(currentPath, "GeneratedPerson" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx");
    
    
    
                GeneratedExcel54(filePath);
    
            }
    
        
    
            public static void GeneratedExcel(string filePath)
            {
                GeneratedClass gExcel = new GeneratedClass();
                gExcel.CreatePackage(filePath);
            }
    
            
        }
    
    

    步骤5、动态添加自己的数据

    5.1 、修改函数(目标是为了添加数据, 所以移动了这个sharedStringTablePart 的位置,其次为了调用sharedStringTablePart 给GenerateWorksheetPart3Content 函数增加了参数, 便于添加数据

     
            // Adds child parts and generates content of the specified part.
            private void CreateParts(SpreadsheetDocument document)
            {
                ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3");
                GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1);
    
                WorkbookPart workbookPart1 = document.AddWorkbookPart();
                GenerateWorkbookPart1Content(workbookPart1);
    
    

    SharedStringTablePart shareStringPart = workbookPart1.AddNewPart<SharedStringTablePart>("rId6"); // GenerateSharedStringTablePart1Content(shareStringPart);

                WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId3");
                GenerateWorksheetPart1Content(worksheetPart1);
    
                WorksheetPart worksheetPart2 = workbookPart1.AddNewPart<WorksheetPart>("rId2");
                GenerateWorksheetPart2Content(worksheetPart2);
    
                WorksheetPart worksheetPart3 = workbookPart1.AddNewPart<WorksheetPart>("rId1");
                

    GenerateWorksheetPart3Content(worksheetPart3, shareStringPart);

                SpreadsheetPrinterSettingsPart spreadsheetPrinterSettingsPart1 = worksheetPart3.AddNewPart<SpreadsheetPrinterSettingsPart>("rId1");
                GenerateSpreadsheetPrinterSettingsPart1Content(spreadsheetPrinterSettingsPart1);
    
                WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId5");
                GenerateWorkbookStylesPart1Content(workbookStylesPart1);
    
                ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId4");
                GenerateThemePart1Content(themePart1);
    
                SetPackageProperties(document);
            }
     

    5.2 、动态添加数据

      // Generates content of worksheetPart3.
            private void GenerateWorksheetPart3Content(WorksheetPart worksheetPart3, SharedStringTablePart shareStringPart)
            {
                Worksheet worksheet3 = new Worksheet() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "x14ac" } };
                worksheet3.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
                worksheet3.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
                worksheet3.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
                SheetDimension sheetDimension3 = new SheetDimension() { Reference = "A1:D2" };
    
                SheetViews sheetViews3 = new SheetViews();
    
                SheetView sheetView3 = new SheetView() { TabSelected = true, WorkbookViewId = (UInt32Value)0U };
                Selection selection1 = new Selection() { ActiveCell = "A2", SequenceOfReferences = new ListValue<StringValue>() { InnerText = "A2:D2" } };
    
                sheetView3.Append(selection1);
    
                sheetViews3.Append(sheetView3);
                SheetFormatProperties sheetFormatProperties3 = new SheetFormatProperties() { DefaultRowHeight = 13.5D, DyDescent = 0.15D };
    
                Columns columns1 = new Columns();
                Column column1 = new Column() { Min = (UInt32Value)1U, Max = (UInt32Value)1U, Width = 25.25D, CustomWidth = true };
                Column column2 = new Column() { Min = (UInt32Value)2U, Max = (UInt32Value)2U, Width = 35D, CustomWidth = true };
                Column column3 = new Column() { Min = (UInt32Value)3U, Max = (UInt32Value)3U, Width = 20.125D, CustomWidth = true };
                Column column4 = new Column() { Min = (UInt32Value)4U, Max = (UInt32Value)4U, Width = 100.75D, CustomWidth = true };
    
                columns1.Append(column1);
                columns1.Append(column2);
                columns1.Append(column3);
                columns1.Append(column4);
    
                SheetData sheetData3 = new SheetData();
    
                Row row1 = new Row() { RowIndex = (UInt32Value)1U, Spans = new ListValue<StringValue>() { InnerText = "1:4" }, Height = 24D, CustomHeight = true, DyDescent = 0.15D };
    
                //Cell cell1 = new Cell(){ CellReference = "A1", StyleIndex = (UInt32Value)1U, DataType = CellValues.SharedString };
                //CellValue cellValue1 = new CellValue();
                //cellValue1.Text = "0";
    
                Cell cell1 = CreateCell("用户信息列表", shareStringPart);
                cell1.StyleIndex = (UInt32Value)1U;
    
                Cell cell2 = new Cell() { CellReference = "B1", StyleIndex = (UInt32Value)1U };
                Cell cell3 = new Cell() { CellReference = "C1", StyleIndex = (UInt32Value)1U };
                Cell cell4 = new Cell() { CellReference = "D1", StyleIndex = (UInt32Value)1U };
    
                row1.Append(cell1);
                row1.Append(cell2);
                row1.Append(cell3);
                row1.Append(cell4);
                sheetData3.Append(row1);
    
                #region 添加数据
    
            

    ExcelDataUtil dataUtil = new ExcelDataUtil(); dataUtil.ExcelData = DataUtil.GetExcelData(); Dictionary<string, string> mDict = new Dictionary<string, string>(); mDict.Add("CustomerID", "用户编号"); mDict.Add("CompanyName", "公司名称"); mDict.Add("ContactTitle", "联系标题"); mDict.Add("ContactName", "联系人名称"); dataUtil.HeaderDict = mDict; AddDataToSheet(dataUtil, shareStringPart, sheetData3);

                #endregion
    
                MergeCells mergeCells1 = new MergeCells() { Count = (UInt32Value)1U };
                MergeCell mergeCell1 = new MergeCell() { Reference = "A1:D1" };
    
                mergeCells1.Append(mergeCell1);
                PhoneticProperties phoneticProperties3 = new PhoneticProperties() { FontId = (UInt32Value)1U, Type = PhoneticValues.NoConversion };
                PageMargins pageMargins3 = new PageMargins() { Left = 0.7D, Right = 0.7D, Top = 0.75D, Bottom = 0.75D, Header = 0.3D, Footer = 0.3D };
                PageSetup pageSetup1 = new PageSetup() { PaperSize = (UInt32Value)9U, Orientation = OrientationValues.Portrait, Id = "rId1" };
    
                worksheet3.Append(sheetDimension3);
                worksheet3.Append(sheetViews3);
                worksheet3.Append(sheetFormatProperties3);
                worksheet3.Append(columns1);
                worksheet3.Append(sheetData3);
                worksheet3.Append(mergeCells1);
                worksheet3.Append(phoneticProperties3);
                worksheet3.Append(pageMargins3);
                worksheet3.Append(pageSetup1);
    
                worksheetPart3.Worksheet = worksheet3;
            }
     

    5.3 、为添加数据,需要提供AddDataToSheet(dataUtil, shareStringPart, sheetData3) 函数的实现即可

        public class ExcelHelper
        {
            /// <summary>
            /// 创建Excel示例
            /// </summary>
            /// <param name="fileName">Excel 文件名称</param>
            public  void CreateSpreadSheet(string fileName)
            {
    
                string sheetName = "test";
    
                using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook))
                {
                    // create the workbook  
                    spreadSheet.AddWorkbookPart();
                    spreadSheet.WorkbookPart.Workbook = new Workbook();     // create the worksheet  
                    spreadSheet.WorkbookPart.AddNewPart<WorksheetPart>();
                    spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet = new Worksheet();
                    SharedStringTablePart m_SharedStringTablePart = spreadSheet.WorkbookPart.AddNewPart<SharedStringTablePart>();
    
                    // create sheet data  
                    SheetData m_SheetData = new SheetData();
                    spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.AppendChild(m_SheetData);
    
                    // create row  
                    //spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.First().AppendChild(new Row());
                    //// create cell with data  
                    //spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.First().First().AppendChild(new Cell() { CellValue = new CellValue("100") });
    
                    //Add Data
                    Row row1 = new Row() { RowIndex = 1 };
    
                    Cell cell1 = new Cell() { CellReference = "A1" };
                    int index = InsertSharedStringItem("Sun", m_SharedStringTablePart);
                    cell1.CellValue = new CellValue(index.ToString());
                    cell1.DataType = new EnumValue<CellValues>(CellValues.SharedString);
    
                    row1.Append(cell1);
                    m_SheetData.Append(row1);
    
                    // save worksheet  
                    spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.Save();
    
                    // create the worksheet to workbook relation  
                    spreadSheet.WorkbookPart.Workbook.AppendChild(new Sheets());
                    spreadSheet.WorkbookPart.Workbook.GetFirstChild<Sheets>().AppendChild(new Sheet()
                    {
                        Id = spreadSheet.WorkbookPart.GetIdOfPart(spreadSheet.WorkbookPart.WorksheetParts.First()),
                        SheetId = 1,
                        Name = sheetName
                    });
    
                    spreadSheet.WorkbookPart.Workbook.Save();
                }
            }
    
            /// <summary>
            /// 添加数据
            /// </summary>
            /// <param name="text"></param>
            /// <param name="shareStringPart"></param>
            /// <returns></returns>
            protected  int InsertSharedStringItem(string text, SharedStringTablePart shareStringPart)
            {
                // If the part does not contain a SharedStringTable, create one.
                if (shareStringPart.SharedStringTable == null)
                {
                    shareStringPart.SharedStringTable = new SharedStringTable();
                    shareStringPart.SharedStringTable.Count = 1;
                    shareStringPart.SharedStringTable.UniqueCount = 1;
                }
    
                // SharedStringTable is contained in this part, you can add one.
                shareStringPart.SharedStringTable.Count += 1;
    
                int i = 0;
                // Iterate through all the items in the SharedStringTable. If the text already exists, return its index.
                foreach (SharedStringItem item in shareStringPart.SharedStringTable.Elements<SharedStringItem>())
                {
                    if (item.InnerText == text)
                    {
                        return i;
                    }
                    i++;
                }
    
                // The text does not exist in the part. Create the SharedStringItem and return its index.
                shareStringPart.SharedStringTable.AppendChild(new SharedStringItem(new DocumentFormat.OpenXml.Spreadsheet.Text(text)));
               
                //PhoneticProperties phoneticProperties = new PhoneticProperties() { FontId = (UInt32Value)1U, Type = PhoneticValues.NoConversion };
                //shareStringPart.SharedStringTable.AppendChild(phoneticProperties);
    
                shareStringPart.SharedStringTable.UniqueCount += 1;
                shareStringPart.SharedStringTable.Save();
    
                return i;
            }
    
            protected Cell CreateCell(string txtContent, SharedStringTablePart shareStringPart, UInt32Value styleIndex = null )
            {
                Cell mCell = new Cell();
                mCell.StyleIndex = styleIndex;
                int index = InsertSharedStringItem(txtContent, shareStringPart);
                CellValue mCellVal = new CellValue(index.ToString());
                mCell.DataType = new EnumValue<CellValues>(CellValues.SharedString);
                mCell.Append(mCellVal);
                return mCell;
            }
    
            /// <summary>
            /// 添加数据到Excel 中
            /// </summary>
            /// <param name="dt"></param>
            /// <param name="mHeaderDict"></param>
            /// <param name="sheetData"></param>
            protected void AddDataToSheet(ExcelDataUtil excelUtil, SharedStringTablePart shareStringPart, SheetData sheetData)
            {
                if(excelUtil.ExcelData != null && excelUtil.HeaderDict != null)
                {
                    UInt32Value startRowNo = 2;  
                    if(excelUtil.HeaderDict.Count > 0)
                    {
                        // 添加列头信息
                        Row rowHeader = new Row() { RowIndex = startRowNo, Spans = new ListValue<StringValue>() { InnerText =string.Format("1:{0}", excelUtil.HeaderDict.Count) /*"1:4"*/ }, Height = 15.75D, DyDescent = 0.15D };
                        foreach(var item in excelUtil.HeaderDict)
                        {
                            Cell mCell = CreateCell(item.Value, shareStringPart, (UInt32Value)2U);
                            rowHeader.Append(mCell);
                        }   
                        sheetData.Append(rowHeader);
                        startRowNo++;
                    }
    
    
                    foreach (DataRow dr in excelUtil.ExcelData.Rows)
                    {               
                        Row rowContent = new Row() { RowIndex = startRowNo, Spans = new ListValue<StringValue>() { InnerText =string.Format("1:{0}", excelUtil.HeaderDict.Count) /*"1:4"*/ }, Height = 15.75D, DyDescent = 0.15D };
                        foreach (var item in excelUtil.HeaderDict)
                        {
                            Cell mCell = CreateCell(dr[item.Key].ToString(), shareStringPart, (UInt32Value)0U);
                            rowContent.Append(mCell);
                        }
                        sheetData.Append(rowContent);
                        startRowNo++;
                    }
                }
                
            }
           
        }
     
       5.4、 可以让生成的GeneratedClass 继承ExcelHelper类,实现添加Excel 数据功能的可复用性
     
    本文的源码
  • 相关阅读:
    SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。 Anti
    SDUT ACM 1002 Biorhythms 中国剩余定理 Anti
    nyist OJ 119 士兵杀敌(三) RMQ问题 Anti
    SDUT ACM 2157 Greatest Number Anti
    SDUT ACM 2622 最短路径 二维SPFA启蒙题。。 Anti
    二叉索引树 区间信息的维护与查询 Anti
    SDUT ACM 2600 子节点计数 Anti
    UVA 1428 Ping pong 二叉索引树标准用法 Anti
    2010圣诞Google首页效果
    Object
  • 原文地址:https://www.cnblogs.com/tianjinquan/p/4261942.html
Copyright © 2011-2022 走看看