Open XML Format не работает - PullRequest
       8

Open XML Format не работает

0 голосов
/ 09 июня 2018

Я пытаюсь отформатировать лист Excel.Заголовок должен иметь жирный шрифт и оранжевый фон.Когда я открываю лист, Excel выдает мне сообщение о том, что документ недействителен, и он открывается со всеми ячейками, выделенными полужирным шрифтом и без фона в заголовке.

Вот так устанавливается стиль.

.....

workbookStylePart = workbookpart.AddNewPart<WorkbookStylesPart>();
workbookStylePart.Stylesheet = CreateStylesheet();
workbookStylePart.Stylesheet.Save();
.....
cell.StyleIndex = 0U; // I suppose the style index is 0

Это определение стиля:

    private static Stylesheet CreateStylesheet()
    {
        Stylesheet stylesheet = new Stylesheet() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "x14ac" } };
        stylesheet.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
        stylesheet.AddNamespaceDeclaration("x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");

        Fonts fonts = new Fonts() { Count = 1U, KnownFonts = true };
        Font boldFont = new Font();
        Bold bold = new Bold();
        boldFont.Append(bold);

        fonts.Append(boldFont);

        Fills fills = new Fills() { Count = 1U };

        // FillId = 0, orange
        Fill orangeFill = new Fill();
        PatternFill orangePatternFill = new PatternFill() { PatternType = PatternValues.Solid };
        BackgroundColor orangeColor = new BackgroundColor() { Rgb = "FFA500" };
        orangePatternFill.Append(orangeColor);
        orangeFill.Append(orangePatternFill);

        fills.Append(orangeFill);

        CellFormats cellFormats = new CellFormats() { Count = 1U };
        CellFormat headerBoldOrangeBgFormat = new CellFormat() { FontId = 0U, FillId = 0U , ApplyFill = true};

        cellFormats.Append(headerBoldOrangeBgFormat);

        stylesheet.Append(fonts);
        stylesheet.Append(fills);
        stylesheet.Append(cellFormats);

        return stylesheet;
    }

1 Ответ

0 голосов
/ 09 июня 2018

Библиотека ClosedXML является высокоуровневой оболочкой над OpenXML.Я рекомендую вам использовать ClosedXML.Кроме того, есть библиотека ClosedXML.Report, которая генерирует файл Excel на основе XLSX-шаблона.

https://github.com/ClosedXML/ClosedXML

https://github.com/ClosedXML/ClosedXML.Report

...