예제 #1
0
        public static void CreateDoc(ExcelInfoClient info)
        {
            using (SpreadsheetDocument spreadsheetDocument =
                       SpreadsheetDocument.Create(info.FileName, SpreadsheetDocumentType.Workbook))
            {
                // Создаем книгу (в ней хранятся листы)
                WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
                workbookpart.Workbook = new Workbook();
                CreateStyles(workbookpart);
                // Получаем/создаем хранилище текстов для книги
                SharedStringTablePart shareStringPart =
                    spreadsheetDocument.WorkbookPart.GetPartsOfType <SharedStringTablePart>().Count() > 0
                ?
                    spreadsheetDocument.WorkbookPart.GetPartsOfType <SharedStringTablePart>().First()
                :
                    spreadsheetDocument.WorkbookPart.AddNewPart <SharedStringTablePart>();
                // Создаем SharedStringTable, если его нет
                if (shareStringPart.SharedStringTable == null)
                {
                    shareStringPart.SharedStringTable = new SharedStringTable();
                }
                // Создаем лист в книгу
                WorksheetPart worksheetPart = workbookpart.AddNewPart <WorksheetPart>();
                worksheetPart.Worksheet = new Worksheet(new SheetData());
                // Добавляем лист в книгу
                Sheets sheets =
                    spreadsheetDocument.WorkbookPart.Workbook.AppendChild <Sheets>(new Sheets());
                Sheet sheet = new Sheet()
                {
                    Id      = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart),
                    SheetId = 1,
                    Name    = "Лист"
                };
                sheets.Append(sheet);
                InsertCellInWorksheet(new ExcelCellParameters
                {
                    Worksheet       = worksheetPart.Worksheet,
                    ShareStringPart = shareStringPart,
                    ColumnName      = "A",
                    RowIndex        = 1,
                    Text            = info.Title,
                    StyleIndex      = 2U
                });
                MergeCells(new ExcelMergeParameters
                {
                    Worksheet    = worksheetPart.Worksheet,
                    CellFromName = "A1",
                    CellToName   = "C1"
                });
                uint rowIndex = 2;

                foreach (var pc in info.ComponentManufactures)
                {
                    InsertCellInWorksheet(new ExcelCellParameters
                    {
                        Worksheet       = worksheetPart.Worksheet,
                        ShareStringPart = shareStringPart,
                        ColumnName      = "A",
                        RowIndex        = rowIndex,
                        //Text = pc.ManufactureName,
                        StyleIndex = 0U
                    });
                    rowIndex++;

                    //foreach (var component in pc.Components)
                    //{
                    //    InsertCellInWorksheet(new ExcelCellParameters
                    //    {
                    //        Worksheet = worksheetPart.Worksheet,
                    //        ShareStringPart = shareStringPart,
                    //        ColumnName = "B",
                    //        RowIndex = rowIndex,
                    //        Text = component.Item1,
                    //        StyleIndex = 1U
                    //    });

                    //    InsertCellInWorksheet(new ExcelCellParameters
                    //    {
                    //        Worksheet = worksheetPart.Worksheet,
                    //        ShareStringPart = shareStringPart,
                    //        ColumnName = "C",
                    //        RowIndex = rowIndex,
                    //        Text = component.Item2.ToString(),
                    //        StyleIndex = 1U
                    //    });

                    //    rowIndex++;
                    //}

                    InsertCellInWorksheet(new ExcelCellParameters
                    {
                        Worksheet       = worksheetPart.Worksheet,
                        ShareStringPart = shareStringPart,
                        ColumnName      = "A",
                        RowIndex        = rowIndex,
                        Text            = "Итого",
                        StyleIndex      = 0U
                    });

                    InsertCellInWorksheet(new ExcelCellParameters
                    {
                        Worksheet       = worksheetPart.Worksheet,
                        ShareStringPart = shareStringPart,
                        ColumnName      = "C",
                        RowIndex        = rowIndex,
                        //Text = pc.TotalCount.ToString(),
                        StyleIndex = 0U
                    });
                    rowIndex++;
                }

                workbookpart.Workbook.Save();
            }
        }
 public static void CreateDoc(ExcelInfoClient info)
 {
     using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(info.FileName, SpreadsheetDocumentType.Workbook))
     {
         WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
         workbookpart.Workbook = new Workbook();
         CreateStyles(workbookpart);
         SharedStringTablePart shareStringPart = spreadsheetDocument.WorkbookPart.GetPartsOfType <SharedStringTablePart>().Count() > 0
         ? spreadsheetDocument.WorkbookPart.GetPartsOfType <SharedStringTablePart>().First()
         : spreadsheetDocument.WorkbookPart.AddNewPart <SharedStringTablePart>();
         if (shareStringPart.SharedStringTable == null)
         {
             shareStringPart.SharedStringTable = new SharedStringTable();
         }
         WorksheetPart worksheetPart = workbookpart.AddNewPart <WorksheetPart>();
         worksheetPart.Worksheet = new Worksheet(new SheetData());
         Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild <Sheets>(new Sheets());
         Sheet  sheet  = new Sheet()
         {
             Id      = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart),
             SheetId = 1,
             Name    = "Лист"
         };
         sheets.Append(sheet);
         InsertCellInWorksheet(new ExcelCellParameters
         {
             Worksheet       = worksheetPart.Worksheet,
             ShareStringPart = shareStringPart,
             ColumnName      = "A",
             RowIndex        = 1,
             Text            = info.Title,
             StyleIndex      = 2U
         });
         MergeCells(new ExcelMergeParameters
         {
             Worksheet    = worksheetPart.Worksheet,
             CellFromName = "A1",
             CellToName   = "F1"
         });
         InsertCellInWorksheet(new ExcelCellParameters
         {
             Worksheet       = worksheetPart.Worksheet,
             ShareStringPart = shareStringPart,
             ColumnName      = "A",
             RowIndex        = 2,
             Text            = "№",
             StyleIndex      = 0U
         });
         InsertCellInWorksheet(new ExcelCellParameters
         {
             Worksheet       = worksheetPart.Worksheet,
             ShareStringPart = shareStringPart,
             ColumnName      = "B",
             RowIndex        = 2,
             Text            = "Название",
             StyleIndex      = 0U
         });
         InsertCellInWorksheet(new ExcelCellParameters
         {
             Worksheet       = worksheetPart.Worksheet,
             ShareStringPart = shareStringPart,
             ColumnName      = "C",
             RowIndex        = 2,
             Text            = "Описание",
             StyleIndex      = 0U
         });
         InsertCellInWorksheet(new ExcelCellParameters
         {
             Worksheet       = worksheetPart.Worksheet,
             ShareStringPart = shareStringPart,
             ColumnName      = "D",
             RowIndex        = 2,
             Text            = "Цена",
             StyleIndex      = 0U
         });
         uint i = 1;
         foreach (var service in info.Services)
         {
             InsertCellInWorksheet(new ExcelCellParameters
             {
                 Worksheet       = worksheetPart.Worksheet,
                 ShareStringPart = shareStringPart,
                 ColumnName      = "A",
                 RowIndex        = i + 2,
                 Text            = i.ToString(),
                 StyleIndex      = 0U
             });
             InsertCellInWorksheet(new ExcelCellParameters
             {
                 Worksheet       = worksheetPart.Worksheet,
                 ShareStringPart = shareStringPart,
                 ColumnName      = "B",
                 RowIndex        = i + 2,
                 Text            = service.ServiceName,
                 StyleIndex      = 0U
             });
             InsertCellInWorksheet(new ExcelCellParameters
             {
                 Worksheet       = worksheetPart.Worksheet,
                 ShareStringPart = shareStringPart,
                 ColumnName      = "C",
                 RowIndex        = i + 2,
                 Text            = service.Desc,
                 StyleIndex      = 0U
             });
             InsertCellInWorksheet(new ExcelCellParameters
             {
                 Worksheet       = worksheetPart.Worksheet,
                 ShareStringPart = shareStringPart,
                 ColumnName      = "D",
                 RowIndex        = i + 2,
                 Text            = service.Price.ToString(),
                 StyleIndex      = 0U
             });
             i++;
         }
         workbookpart.Workbook.Save();
     }
 }