如何删除部分字符串并保存样式格式

时间:2019-07-07 11:01:22

标签: c# closedxml

我有一个带有内容的单元格。我想删除部分内容,但使用持久性样式格式。我尝试使用功能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 个答案:

答案 0 :(得分:1)

您需要使用单元格的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:类似于您的previous问题,这仅适用于0.92以下的ClosedXML版本。也许我会看一下库,然后尝试制作一个更简单的解决方案。