格式化Excel电子表格单元格内的文本
问题描述:
我需要修改的代码创建一个Excel电子表格并在单元格中插入搜索结果。逻辑找到匹配并复制代码中的整个行。然后它用<comma>
替换逗号,不知道为什么,但那不重要。我需要突出显示此搜索结果中的特定单词,最好是粗体和红色。查看下面的例子,搜索参数是COMPUTE,结果是整行代码,这是设计的。格式化Excel电子表格单元格内的文本
)WITH(PAD_INDEX = OFF STATISTICS_NORE COMPUTE = OFF IGNORE_DUP_KEY = OFF ALLOW_ROW_LOCKS = ON
我有一个分割 '语境' 可变成字符串数组,并且如果匹配的一些基本代码被发现它应该格式化这个词 - 但是这是我的挑战所在。
我发现了很多关于如何格式化整个单元或行,但不是单元格内文本的例子。
string[] wordList = context.Split(' ');
StringBuilder reassembleContext = new StringBuilder();
int i = 0;
regexPattern = new Regex(pattern.ToString(CultureInfo.InvariantCulture));
foreach (string word in wordList)
{
var matches = Regex.Matches(word, pattern.ToString(), RegexOptions.IgnoreCase);
if (matches.Count > 0)
{
wordList[i] = "<b>" + word + "</b>"; // Clearly this does not work...
}
reassembleContext.Append(wordList[i]);
reassembleContext.Append(" ");
i++;
}
context = reassembleContext.ToString();
答
-
最简单的办法是将HTML中的剪贴板,并将其粘贴:
System.Windows.Forms.Clipboard.SetText("<html>a<b>b</b>c"); worksheet.Range["A1"].PasteSpecial();
-
的常用方法是使用电池的
.Characters
属性来设置格式:worksheet.Range["A1"].Characters[38, 7].Font.Bold = true;
-
另一种方法是使用Excel的Replace格式:
application.ReplaceFormat.Font.Bold = true; range.Replace("COMPUTE", "COMPUTE", XlLookAt.xlPart, ReplaceFormat: true);
我什么都不知道在'C#'为Excel编程,但在Excel本身,你可以格式化提供的单元格内容是文本字符串,而不是一个公式的结果的单元格中的文本。在VBA中,您将使用characters属性来确定哪些字符的格式不同。 –
是这个Interop.Excel,还是OpenXML,或其他什么..? – Slai
它是Interop.Excel,但可以更改。 – Risho