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 数据功能的可复用性
     
    本文的源码
  • 相关阅读:
    软件测试之魂:核心测试设计精解
    测试的第一重境界:围着Bug转
    理想运算放大器的性质
    MATLAB脚本显示滤波器系数
    matlab中用转义符来输入希腊字母的方法
    Linux中Matlab安装总结
    在ubuntu下阅读chm文件的四种方法(转)
    ARM是不是单片机
    日本人的英文名字
    WAV格式音乐
  • 原文地址:https://www.cnblogs.com/tianjinquan/p/4261942.html
Copyright © 2011-2022 走看看