Как управлять столбцами в OpenXML - PullRequest
0 голосов
/ 25 июня 2019

Я создал файл Excel с библиотекой OpenXMl с следующим кодом.Столбцы не получают ширину, как они определены в коде.У кого-нибудь есть идея?

   WorkbookPart workbookPart = document.AddWorkbookPart();
   workbookPart.Workbook = new Workbook();

   WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
   worksheetPart.Worksheet = new Worksheet();

   var workbookStylesPart = workbookPart.AddNewPart<WorkbookStylesPart>();

   workbookStylesPart.Stylesheet = new Stylesheet();

   workbookStylesPart.Stylesheet.Save();

   // Make the columns in the worksheet
   var columns = worksheetPart.Worksheet.GetFirstChild<Columns>();
   bool needToInsertColumns = false;

   if (columns == null)
   {
       columns = new Columns();
       needToInsertColumns = true;
   }

   Column column1 = new Column() { CustomWidth = true, Width = 5};

   columns.Append(column1);
   // Insert the columns into the Worksheet
   if (needToInsertColumns)
   worksheetPart.Worksheet.InsertAt(columns, 0);

   SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData());

   Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());

   Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Employees" };

   sheets.Append(sheet);
   workbookPart.Workbook.Save();
   worksheetPart.Worksheet.Save();
   document.Save();

1 Ответ

0 голосов
/ 26 июня 2019

Я попробовал следующее и добился успеха:

            var columns = new Columns();
            var column1 = new Column { Min = 1, Max = 1, Width = 5, CustomWidth = true };
            var column2 = new Column { Min = 2, Max = 2, Width = 10, CustomWidth = true };
            var column3 = new Column { Min = 3, Max = 3, Width = 5, CustomWidth = true };
            var column4 = new Column { Min = 4, Max = 4, Width = 20, CustomWidth = true };
            var column5 = new Column { Min = 5, Max = 5, Width = 50, CustomWidth = true };

            columns.Append(column1);
            columns.Append(column2);
            columns.Append(column3);
            columns.Append(column4);
            columns.Append(column5);

            worksheetPart.Worksheet.Append(columns);
...