Как удалить часть строки и сохранить формат стиля - PullRequest
1 голос
/ 07 июля 2019

У меня есть ячейка с контентом. Я хочу удалить часть этого контента, но в формате постоянного стиля Я пытался использовать функцию Substring (), но она не сохраняет формат стиля

Например:

Моя клетка:

enter image description here

Хочу увидеть:

enter image description here

var firstDot = getCellValue.ToString().IndexOf(".");
var strWithoutBold = ws.Cell(1, 1).Value.ToString().Substring(firstDot);

1 Ответ

1 голос
/ 08 июля 2019

Вам необходимо использовать свойство RichText ячейки.Сначала скопируйте сокращенный текст из ячейки, затем очистите ячейку и вставьте оставшиеся части RichText:

int firstDot = ws.Cell(1, 1).GetString().IndexOf(".");
IXLFormattedText<IXLRichText> strWithoutBold =  ws.Cell(1, 1).RichText.Substring(firstDot);
ws.Cell(1, 1).RichText.ClearText();
foreach (IXLRichString rt in strWithoutBold)
{
    ws.Cell(1, 1).RichText.AddText(rt.Text).CopyFont(rt);
}

PS1: когда вы используете индекс точки, вы сохраняете точку (котораяжирным шрифтом).Вам может понадобиться +1 индекс.

PS2: аналогично вашему предыдущему вопросу, это будет работать только с версиями ClosedXML до 0,92.Может быть, я посмотрю на библиотеку и постараюсь найти более простое решение.

...