NPOI导出Excel行高已设置,单元格内容需双击才正常换行显示
问题
用NPOI导出Excel时,单元格里添加了带换行符的内容,也设置了行高,但导出后内容挤成一团,只有双击单元格才会正常换行显示。
原代码片段:
var row = sheet.CreateRow(1); row.Height = 900; var questionString = "Question 1" + Environment.NewLine + "Question 2" + Environment.NewLine;
导出后初始效果:
双击单元格后正常效果:
解决办法
问题根源是未开启单元格的自动换行功能——Excel默认不会识别单元格内的换行符并自动换行,只需给单元格样式添加WrapText=true即可解决。
修改后的代码示例:
// 创建单元格样式 var cellStyle = workbook.CreateCellStyle(); // 开启自动换行 cellStyle.WrapText = true; var row = sheet.CreateRow(1); row.Height = 900; // 创建单元格并设置内容和样式 var cell = row.CreateCell(0); cell.SetCellValue("Question 1" + Environment.NewLine + "Question 2" + Environment.NewLine); cell.CellStyle = cellStyle;
设置完成后,导出的Excel内容会直接根据换行符自动换行显示,无需手动双击单元格触发。
内容的提问来源于stack exchange,提问作者Osama El-Masri
相关产品推荐
相关产品推荐

