Files
QWERTYkez.OpenXmlProcessors/QWERTYkez.ExcelProcessor/Editors/RunFormat.cs

70 lines
2.9 KiB
C#
Raw Normal View History

namespace QWERTYkez.ExcelProcessor.Editors;
/// <summary>
/// Определяет форматирование отдельного фрагмента (Run) внутри ячейки с богатым текстом.
/// Применяется только к тексту внутри <see cref="ICellText"/>.
/// </summary>
public readonly struct RunFormat
{
/// <summary>Жирное начертание фрагмента.</summary>
public bool? IsBold { get; init; }
/// <summary>Курсив фрагмента.</summary>
public bool? IsItalic { get; init; }
/// <summary>Стиль подчёркивания (одинарное, двойное, волнистое и т.д.).</summary>
public UnderlineStyle? Underline { get; init; }
/// <summary>Одинарное зачёркивание.</summary>
public bool? IsStrike { get; init; }
/// <summary>Цвет текста фрагмента.</summary>
public ExColor? Color { get; init; }
/// <summary>Размер шрифта фрагмента в пунктах.</summary>
public double? FontSize { get; init; }
/// <summary>Имя шрифта фрагмента (например, "Calibri").</summary>
public string? FontFamily { get; init; }
/// <summary>Вертикальное смещение (надстрочный или подстрочный).</summary>
public VerticalTextRunAlignment? Vertical { get; init; }
/*
методы для извлечения OpenXmlElement или других более удобных типов
public bool TryExtract(out List<...> elements);
или
public bool TrySetFor(InlineString str)
или
public bool TrySetFor(ExcelRun str)
*/
}
/// <summary>Определяет стиль подчёркивания текста в ячейке или в части текста (Run).</summary>
public enum UnderlineStyle
{
/// <summary>Одинарное сплошное подчёркивание.</summary>
Single,
/// <summary>Двойное сплошное подчёркивание.</summary>
Double,
/// <summary>Одинарное подчёркивание, используемое для бухгалтерских форматов (нижняя граница ячейки).</summary>
SingleAccounting,
/// <summary>Двойное подчёркивание для бухгалтерских форматов.</summary>
DoubleAccounting
}
/// <summary>Вертикальное смещение текста внутри прогона (Run) надстрочный или подстрочный.</summary>
public enum VerticalTextRunAlignment
{
/// <summary>Надстрочный текст (верхний индекс).</summary>
Superscript,
/// <summary>Подстрочный текст (нижний индекс).</summary>
Subscript
}