我可以扩展 MS Dynamics Navision 中的 Excel 缓冲区来更新字体、颜色和 bold/italics/underline 吗?
Can I extend the Excel Buffer in MS Dynamics Navision to update font, colour and bold/italics/underline?
我正在使用 MS Dynamics Navision 2013 R2 Excel 缓冲区 table 生成一个 Excel 电子表格,并希望扩展它以允许设置字体名称、字体大小、字体颜色和填充颜色。
我已经使用 Saurav Dhyani 在他的 NAV 2013 R2 - Export To Excel With Font & Color 博客 post 中给出的解决方案设法设置了这些附加属性,但该解决方案不保留粗体、斜体和下划线属性的设置更改字体时。他的评论 post 表明这是尚未解决的问题。
我对 Saurav 解决方案的实施涉及添加字段 "Font Name"(文本 100)、"Font Size"(整数)、"Font Colour"(整数)和 "Background Colour"(整数)到 Excel 缓冲区 table (Table 370)。这些字段可以由调用模块设置。 Excel 缓冲区 table 中对 GetCellDecorator 函数的所有调用都将替换为对新 GetCellDecoratorWithFont 函数的调用。此函数采用与现有 GetCellDecorator 函数相同的参数,外加每个新 table 字段的参数。
GetCellDecoratorWithFont 函数如下所示:
IF IsBold AND IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicUnderlinedCellDecorator
ELSE IF IsBold AND IsItalic THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicCellDecorator
ELSE IF IsBold AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldUnderlinedCellDecorator
ELSE IF IsBold THEN
Decorator := XlWrkShtWriter.DefaultBoldCellDecorator
ELSE IF IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultItalicUnderlinedCellDecorator
ELSE IF IsItalic THEN
Decorator := XlWrkShtWriter.DefaultItalicCellDecorator
ELSE IF IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultUnderlinedCellDecorator
ELSE
Decorator := XlWrkShtWriter.DefaultCellDecorator;
IF (FontName <> '') OR (FontSize <> 0) OR (FontColour <> 0) OR (BackgroundColour <> 0) THEN
CustomFont := Decorator.Font.CloneNode(TRUE)
ELSE
EXIT;
IF FontName <> '' THEN BEGIN
CustomFont := CustomFont.Font;
CustomFontName := CustomFontName.FontName;
CustomFontName.Val := XmlStringValue.StringValue(FontName);
CustomFont.FontName := CustomFontName;
END;
IF FontSize <> 0 THEN BEGIN
CustomFontSize := CustomFontSize.FontSize;
CustomFontSize.Val := FontSizeValue.DoubleValue(FontSize);
CustomFont.FontSize := CustomFontSize;
END;
IF FontColour <> 0 THEN BEGIN
CustomColour := CustomColour.Color;
CASE FontColour OF
1 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
2 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourWhite);
3 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRed);
4 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlue);
5 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourGreen);
6 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRose);
7 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourLightGrey);
ELSE
CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
END;
CustomFont.Color := CustomColour;
END;
IF BackgroundColour <> 0 THEN BEGIN
HexBackgroundColour := '';
CASE BackgroundColour OF
1 : HexBackgroundColour := ColourBlack;
2 : HexBackgroundColour := ColourWhite;
3 : HexBackgroundColour := ColourRed;
4 : HexBackgroundColour := ColourBlue;
5 : HexBackgroundColour := ColourGreen;
6 : HexBackgroundColour := ColourRose;
7 : HexBackgroundColour := ColourLightGrey;
ELSE
HexBackgroundColour := ColourWhite;
END;
CustomCellFill := Decorator.Fill.CloneNode(TRUE);
CustomCellPatternFill := CustomCellPatternFill.PatternFill(
'<x:patternFill xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main" '+'patternType="'+'solid'+'">' +
'<x:fgColor rgb="' + HexBackgroundColour + '" /></x:patternFill>');
CustomCellFill.PatternFill := CustomCellPatternFill;
Decorator.Fill := CustomCellFill;
END;
Fonts := XlWrkBkWriter.Workbook.WorkbookPart.WorkbookStylesPart.Stylesheet.Fonts;
Decorator.Font := CustomFont;
ColourBlack、ColourWhite 等是使用颜色的十六进制值的文本常量。
调用此代码时,字体和填充颜色都按预期设置,但粗体、斜体和下划线不是。删除函数的最后一行:
Decorator.Font := CustomFont;
恢复粗体、斜体和下划线,但丢失所有其他格式。
有没有办法在保留原有属性的同时添加额外的属性?
回答我自己的问题...
Saurav Dhyani(请参阅相关 link)更新了他的博客,以更正粗体、下划线和斜体属性被实施附加字体属性覆盖的问题。我对他的代码做了一些修改(在他的博客上讨论过)。这是我在 Excel 缓冲区 table:-
中实现的 GetCellDecoratorWithFont 函数
Decorator := XlWrkShtWriter.DefaultCellDecorator;
IF (FontName <> '') OR (FontSize <> 0) OR (FontColour <> 0) OR (BackgroundColour <>0) THEN
CustomFont := Decorator.Font.CloneNode(TRUE)
ELSE BEGIN
IF IsBold AND IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicUnderlinedCellDecorator
ELSE IF IsBold AND IsItalic THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicCellDecorator
ELSE IF IsBold AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldUnderlinedCellDecorator
ELSE IF IsBold THEN
Decorator := XlWrkShtWriter.DefaultBoldCellDecorator
ELSE IF IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultItalicUnderlinedCellDecorator
ELSE IF IsItalic THEN
Decorator := XlWrkShtWriter.DefaultItalicCellDecorator
ELSE IF IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultUnderlinedCellDecorator
ELSE
Decorator := XlWrkShtWriter.DefaultCellDecorator;
EXIT;
END;
IF FontName <> '' THEN BEGIN
CustomFont := CustomFont.Font;
CustomFontName := CustomFontName.FontName;
CustomFontName.Val := XmlStringValue.StringValue(FontName);
CustomFont.FontName := CustomFontName;
END;
IF FontSize <> 0 THEN BEGIN
CustomFontSize := CustomFontSize.FontSize;
CustomFontSize.Val := FontSizeValue.DoubleValue(FontSize);
CustomFont.FontSize := CustomFontSize;
END;
IF FontColour <> 0 THEN BEGIN
CustomColour := CustomColour.Color;
CASE FontColour OF
1 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
2 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourWhite);
3 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRed);
4 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlue);
5 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourGreen);
6 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRose);
7 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourLightGrey);
ELSE
CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
END;
CustomFont.Color := CustomColour;
END;
IF BackgroundColour <> 0 THEN BEGIN
HexBackgroundColour := '';
CASE BackgroundColour OF
1 : HexBackgroundColour := ColourBlack;
2 : HexBackgroundColour := ColourWhite;
3 : HexBackgroundColour := ColourRed;
4 : HexBackgroundColour := ColourBlue;
5 : HexBackgroundColour := ColourGreen;
6 : HexBackgroundColour := ColourRose;
7 : HexBackgroundColour := ColourLightGrey;
ELSE
HexBackgroundColour := ColourWhite;
END;
CustomCellFill := Decorator.Fill.CloneNode(TRUE);
CustomCellPatternFill := CustomCellPatternFill.PatternFill(
'<x:patternFill xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main" '+'patternType="'+'solid'+'">' +
'<x:fgColor rgb="' + HexBackgroundColour + '" /></x:patternFill>');
CustomCellFill.PatternFill := CustomCellPatternFill;
Decorator.Fill := CustomCellFill;
END;
IF IsBold THEN BEGIN
CustomFontBold := CustomFontBold.Bold;
CustomFontBold.Val := XmlBooleanValue.BooleanValue(TRUE);
CustomFont.Bold := CustomFontBold;
END;
IF IsItalic THEN BEGIN
CustomFontItalic := CustomFontItalic.Italic;
CustomFontItalic.Val := XmlBooleanValue.BooleanValue(TRUE);
CustomFont.Italic := CustomFontItalic;
END;
IF IsUnderlined THEN BEGIN
// CustomFontUnderline := CustomFontUnderline.Underline;
// CustomFontUnderline.Val := XmlBooleanValue.BooleanValue(TRUE);
// CustomFont.Underline := CustomFontUnderline;
END;
Fonts := XlWrkBkWriter.Workbook.WorkbookPart.WorkbookStylesPart.Stylesheet.Fonts;
Decorator.Font := CustomFont;
如图所示,下划线 属性 的实现不起作用,因此需要更正。
函数的局部变量是:-
CustomFont:DocumentFormat.OpenXml.Spreadsheet.Font.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontName:DocumentFormat.OpenXml.Spreadsheet.FontName.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontSize:DocumentFormat.OpenXml.Spreadsheet.FontSize.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontBold:DocumentFormat.OpenXml.Spreadsheet.Bold.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontItalic:DocumentFormat.OpenXml.Spreadsheet.Italic.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontUnderline:DocumentFormat.OpenXml.Spreadsheet.Underline.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
XmlStringValue:DocumentFormat.OpenXml.StringValue.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
XmlBooleanValue:DocumentFormat.OpenXml.BooleanValue.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
FontSizeValue:DocumentFormat.OpenXml.DoubleValue.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomColour:DocumentFormat.OpenXml.Spreadsheet.Color.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
HexColour:DocumentFormat.OpenXml.HexBinaryValue.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomCellFill:DocumentFormat.OpenXml.Spreadsheet.Fill.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomCellPatternFill:DocumentFormat.OpenXml.Spreadsheet.PatternFill.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
Fonts:DocumentFormat.OpenXml.Spreadsheet.Fonts.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
HexBackgroundColour:Text(10)
我正在使用 MS Dynamics Navision 2013 R2 Excel 缓冲区 table 生成一个 Excel 电子表格,并希望扩展它以允许设置字体名称、字体大小、字体颜色和填充颜色。
我已经使用 Saurav Dhyani 在他的 NAV 2013 R2 - Export To Excel With Font & Color 博客 post 中给出的解决方案设法设置了这些附加属性,但该解决方案不保留粗体、斜体和下划线属性的设置更改字体时。他的评论 post 表明这是尚未解决的问题。
我对 Saurav 解决方案的实施涉及添加字段 "Font Name"(文本 100)、"Font Size"(整数)、"Font Colour"(整数)和 "Background Colour"(整数)到 Excel 缓冲区 table (Table 370)。这些字段可以由调用模块设置。 Excel 缓冲区 table 中对 GetCellDecorator 函数的所有调用都将替换为对新 GetCellDecoratorWithFont 函数的调用。此函数采用与现有 GetCellDecorator 函数相同的参数,外加每个新 table 字段的参数。
GetCellDecoratorWithFont 函数如下所示:
IF IsBold AND IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicUnderlinedCellDecorator
ELSE IF IsBold AND IsItalic THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicCellDecorator
ELSE IF IsBold AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldUnderlinedCellDecorator
ELSE IF IsBold THEN
Decorator := XlWrkShtWriter.DefaultBoldCellDecorator
ELSE IF IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultItalicUnderlinedCellDecorator
ELSE IF IsItalic THEN
Decorator := XlWrkShtWriter.DefaultItalicCellDecorator
ELSE IF IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultUnderlinedCellDecorator
ELSE
Decorator := XlWrkShtWriter.DefaultCellDecorator;
IF (FontName <> '') OR (FontSize <> 0) OR (FontColour <> 0) OR (BackgroundColour <> 0) THEN
CustomFont := Decorator.Font.CloneNode(TRUE)
ELSE
EXIT;
IF FontName <> '' THEN BEGIN
CustomFont := CustomFont.Font;
CustomFontName := CustomFontName.FontName;
CustomFontName.Val := XmlStringValue.StringValue(FontName);
CustomFont.FontName := CustomFontName;
END;
IF FontSize <> 0 THEN BEGIN
CustomFontSize := CustomFontSize.FontSize;
CustomFontSize.Val := FontSizeValue.DoubleValue(FontSize);
CustomFont.FontSize := CustomFontSize;
END;
IF FontColour <> 0 THEN BEGIN
CustomColour := CustomColour.Color;
CASE FontColour OF
1 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
2 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourWhite);
3 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRed);
4 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlue);
5 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourGreen);
6 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRose);
7 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourLightGrey);
ELSE
CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
END;
CustomFont.Color := CustomColour;
END;
IF BackgroundColour <> 0 THEN BEGIN
HexBackgroundColour := '';
CASE BackgroundColour OF
1 : HexBackgroundColour := ColourBlack;
2 : HexBackgroundColour := ColourWhite;
3 : HexBackgroundColour := ColourRed;
4 : HexBackgroundColour := ColourBlue;
5 : HexBackgroundColour := ColourGreen;
6 : HexBackgroundColour := ColourRose;
7 : HexBackgroundColour := ColourLightGrey;
ELSE
HexBackgroundColour := ColourWhite;
END;
CustomCellFill := Decorator.Fill.CloneNode(TRUE);
CustomCellPatternFill := CustomCellPatternFill.PatternFill(
'<x:patternFill xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main" '+'patternType="'+'solid'+'">' +
'<x:fgColor rgb="' + HexBackgroundColour + '" /></x:patternFill>');
CustomCellFill.PatternFill := CustomCellPatternFill;
Decorator.Fill := CustomCellFill;
END;
Fonts := XlWrkBkWriter.Workbook.WorkbookPart.WorkbookStylesPart.Stylesheet.Fonts;
Decorator.Font := CustomFont;
ColourBlack、ColourWhite 等是使用颜色的十六进制值的文本常量。
调用此代码时,字体和填充颜色都按预期设置,但粗体、斜体和下划线不是。删除函数的最后一行:
Decorator.Font := CustomFont;
恢复粗体、斜体和下划线,但丢失所有其他格式。
有没有办法在保留原有属性的同时添加额外的属性?
回答我自己的问题...
Saurav Dhyani(请参阅相关 link)更新了他的博客,以更正粗体、下划线和斜体属性被实施附加字体属性覆盖的问题。我对他的代码做了一些修改(在他的博客上讨论过)。这是我在 Excel 缓冲区 table:-
中实现的 GetCellDecoratorWithFont 函数Decorator := XlWrkShtWriter.DefaultCellDecorator;
IF (FontName <> '') OR (FontSize <> 0) OR (FontColour <> 0) OR (BackgroundColour <>0) THEN
CustomFont := Decorator.Font.CloneNode(TRUE)
ELSE BEGIN
IF IsBold AND IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicUnderlinedCellDecorator
ELSE IF IsBold AND IsItalic THEN
Decorator := XlWrkShtWriter.DefaultBoldItalicCellDecorator
ELSE IF IsBold AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultBoldUnderlinedCellDecorator
ELSE IF IsBold THEN
Decorator := XlWrkShtWriter.DefaultBoldCellDecorator
ELSE IF IsItalic AND IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultItalicUnderlinedCellDecorator
ELSE IF IsItalic THEN
Decorator := XlWrkShtWriter.DefaultItalicCellDecorator
ELSE IF IsUnderlined THEN
Decorator := XlWrkShtWriter.DefaultUnderlinedCellDecorator
ELSE
Decorator := XlWrkShtWriter.DefaultCellDecorator;
EXIT;
END;
IF FontName <> '' THEN BEGIN
CustomFont := CustomFont.Font;
CustomFontName := CustomFontName.FontName;
CustomFontName.Val := XmlStringValue.StringValue(FontName);
CustomFont.FontName := CustomFontName;
END;
IF FontSize <> 0 THEN BEGIN
CustomFontSize := CustomFontSize.FontSize;
CustomFontSize.Val := FontSizeValue.DoubleValue(FontSize);
CustomFont.FontSize := CustomFontSize;
END;
IF FontColour <> 0 THEN BEGIN
CustomColour := CustomColour.Color;
CASE FontColour OF
1 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
2 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourWhite);
3 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRed);
4 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlue);
5 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourGreen);
6 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourRose);
7 : CustomColour.Rgb := HexColour.HexBinaryValue(ColourLightGrey);
ELSE
CustomColour.Rgb := HexColour.HexBinaryValue(ColourBlack);
END;
CustomFont.Color := CustomColour;
END;
IF BackgroundColour <> 0 THEN BEGIN
HexBackgroundColour := '';
CASE BackgroundColour OF
1 : HexBackgroundColour := ColourBlack;
2 : HexBackgroundColour := ColourWhite;
3 : HexBackgroundColour := ColourRed;
4 : HexBackgroundColour := ColourBlue;
5 : HexBackgroundColour := ColourGreen;
6 : HexBackgroundColour := ColourRose;
7 : HexBackgroundColour := ColourLightGrey;
ELSE
HexBackgroundColour := ColourWhite;
END;
CustomCellFill := Decorator.Fill.CloneNode(TRUE);
CustomCellPatternFill := CustomCellPatternFill.PatternFill(
'<x:patternFill xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main" '+'patternType="'+'solid'+'">' +
'<x:fgColor rgb="' + HexBackgroundColour + '" /></x:patternFill>');
CustomCellFill.PatternFill := CustomCellPatternFill;
Decorator.Fill := CustomCellFill;
END;
IF IsBold THEN BEGIN
CustomFontBold := CustomFontBold.Bold;
CustomFontBold.Val := XmlBooleanValue.BooleanValue(TRUE);
CustomFont.Bold := CustomFontBold;
END;
IF IsItalic THEN BEGIN
CustomFontItalic := CustomFontItalic.Italic;
CustomFontItalic.Val := XmlBooleanValue.BooleanValue(TRUE);
CustomFont.Italic := CustomFontItalic;
END;
IF IsUnderlined THEN BEGIN
// CustomFontUnderline := CustomFontUnderline.Underline;
// CustomFontUnderline.Val := XmlBooleanValue.BooleanValue(TRUE);
// CustomFont.Underline := CustomFontUnderline;
END;
Fonts := XlWrkBkWriter.Workbook.WorkbookPart.WorkbookStylesPart.Stylesheet.Fonts;
Decorator.Font := CustomFont;
如图所示,下划线 属性 的实现不起作用,因此需要更正。
函数的局部变量是:-
CustomFont:DocumentFormat.OpenXml.Spreadsheet.Font.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontName:DocumentFormat.OpenXml.Spreadsheet.FontName.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontSize:DocumentFormat.OpenXml.Spreadsheet.FontSize.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontBold:DocumentFormat.OpenXml.Spreadsheet.Bold.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontItalic:DocumentFormat.OpenXml.Spreadsheet.Italic.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomFontUnderline:DocumentFormat.OpenXml.Spreadsheet.Underline.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
XmlStringValue:DocumentFormat.OpenXml.StringValue.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
XmlBooleanValue:DocumentFormat.OpenXml.BooleanValue.'DocumentFormat.OpenXml, Version=2.0.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
FontSizeValue:DocumentFormat.OpenXml.DoubleValue.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomColour:DocumentFormat.OpenXml.Spreadsheet.Color.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
HexColour:DocumentFormat.OpenXml.HexBinaryValue.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomCellFill:DocumentFormat.OpenXml.Spreadsheet.Fill.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
CustomCellPatternFill:DocumentFormat.OpenXml.Spreadsheet.PatternFill.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
Fonts:DocumentFormat.OpenXml.Spreadsheet.Fonts.'DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
HexBackgroundColour:Text(10)