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