如何使用C# EPPlus为单个Excel单元格内不同内容设置不同样式
解决方案
EPPlus完全支持同一单元格内部分文本单独设置样式,可通过单元格的RichText富文本接口实现,操作逻辑为将单元格内容拆分为多个独立文本片段,每个片段可单独配置字体、粗细、颜色、字号等样式,无需对整个单元格统一应用样式。
基础实现代码
using OfficeOpenXml; using System.Drawing; using System.IO; // 初始化Excel工作簿 ExcelPackage package = new ExcelPackage(); ExcelWorksheet ws = package.Workbook.Worksheets.Add("Sheet1"); var targetCell = ws.Cells[1, 1]; // 清空原有内容,启用富文本模式 targetCell.RichText.Clear(); // 添加普通文本片段 var normalText = targetCell.RichText.Add("常规文本内容"); normalText.Bold = false; normalText.Size = 11; normalText.FontName = "宋体"; // 添加加粗文本片段 var boldText = targetCell.RichText.Add(" 加粗的重点内容 "); boldText.Bold = true; boldText.Color = Color.Red; // 可额外配置其他样式 // 继续添加剩余普通文本 var followText = targetCell.RichText.Add("后续常规内容"); followText.Bold = false; // 保存文件 package.SaveAs(new FileInfo("输出示例.xlsx"));
注意事项
- 不要直接给已配置富文本的单元格赋值
Value属性,否则会覆盖所有分段样式,统一转为普通文本 - 如果需要修改已有内容的单元格中指定位置字符的样式,可先将原有内容转存为临时变量,按索引拆分后重新添加到
RichText集合中单独配置样式 - EPPlus 4.x、5.x、6.x版本的
RichText接口逻辑一致,无兼容性差异
内容的提问来源于stack exchange,提问作者Zaheen Haris
相关产品推荐
相关产品推荐

