/// <summary>
/// NPOI批量修改Excel单元格内指定文字的样式
/// </summary>
/// <param name="oldExcelPath">需要修改的Excel文件路径</param>
/// <param name="newExcelPath">修改后输出的Excel文件路径</param>
/// <param name="Bold.txt">需要被更改的文字列表以换行分割</param>
public void EditExcelCellStyle(string oldExcelPath, string newExcelPath)
{
string txtpath = AppDomain.CurrentDomain.BaseDirectory + "Bold.txt";
List<string> list = Tools.ReadTxt(txtpath);
string[] arr = list.ToArray();
arr = arr.Where(s => !string.IsNullOrEmpty(s)).ToArray();//过滤空字符串
//打开对象文件
FileStream fs = new FileStream(oldExcelPath, FileMode.Open, FileAccess.Read);
//新建一个Excel
IWorkbook workbook = new XSSFWorkbook(fs);
//根据索引获取第一个表
ISheet sheet = workbook.GetSheetAt(0);
var font = workbook.CreateFont();
font.IsBold = true;
//这里可以设置字体大小 颜色等等
for (int i = sheet.FirstRowNum; i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
//for (int j = row.FirstCellNum; j < row.LastCellNum; j++)
for (int j = 3; j < row.LastCellNum; j += 6)
{
if (row.GetCell(j) != null)
{
row.GetCell(j).SetCellType(CellType.String);
}
ICell cell = row.GetCell(j);
if (cell != null)
{
//得到原来的值
string cellContent = cell.StringCellValue;
if (i > 2 && j == 9)
{
int length = cellContent.Length;
row.HeightInPoints = 20 * (length / 17);
}
//替换和字典对应的值
foreach (string item in arr)
{
本文暂时没有评论,来添加一个吧(●'◡'●)