【环境】

poi-ooxml 4.0.1、java 8

【核心代码】

XSSFRichTextString value = new XSSFRichTextString("红色黑色");
value.applyFont(0, 2, redFont);

【完整代码】

package excel.write;import java.io.File;
import java.io.FileOutputStream;import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ExcelRichTextTest {public static void main(String[] args) {String filePath ="E:\\tmp\\test\\excelTest\\richText_" + System.currentTimeMillis() + ".xlsx";File folder = new File(filePath.substring(0, filePath.lastIndexOf(File.separator)));if (!folder.exists()) {folder.mkdirs();}Workbook wb = null;FileOutputStream out = null;try {wb = new XSSFWorkbook();Sheet sheet = wb.createSheet();Row row = sheet.createRow(0);Cell cell = row.createCell(0);XSSFRichTextString value = new XSSFRichTextString("红色黑色");Font redFont = wb.createFont();redFont.setColor(Font.COLOR_RED);redFont.setBold(true);redFont.setFontName("宋体");// 给[0, 2)位置设置以上格式value.applyFont(0, 2, redFont);Font blackFont = wb.createFont();blackFont.setColor(Font.COLOR_NORMAL);blackFont.setBold(true);blackFont.setFontName("宋体");value.applyFont(2, value.length(), blackFont);cell.setCellValue(value);out = new FileOutputStream(filePath);wb.write(out);} catch (Exception e) {e.printStackTrace();} finally {try {if (out != null) {out.close();}} catch (Exception e) {e.printStackTrace();}try {if (wb != null) {wb.close();}} catch (Exception e) {e.printStackTrace();}}}
}

【效果】

【说明】

Excel显示的效果确实为红色+宋体,但是在字体属性这一块显示的是默认的,双击单元格后字体属性就显示正常了。

做了双击单元格操作之后,点击关闭Excel,会提示是否要保存,选择保存,然后再次打开Excel,字体属性这一块就显示对了。

【猜测】

有可能是POI写的Excel文件内部格式和软件写的不同,打开软件后的字体属性未能正确读取到这些格式(但显示是对的),然后双击单元格后,软件应该修改了Excel文件内部的格式,保存后就能正常读取了。

Excel给同一单元格设置不同颜色的字体相关推荐

  1. Excel中同一单元格设置不同颜色的字体

    [环境] poi-ooxml 4.0.1.java 8 [核心代码] XSSFRichTextString value = new XSSFRichTextString("红色黑色" ...

  2. Hutool导出Excel,在一个单元格设置多个字体样式

    ExcelWriter writer = ExcelUtil.getWriter(true); //第二行第一列 CellStyle cellStyle1 = writer.createCellSty ...

  3. POI Excel 06 合并单元格,设置字体样式

    @author YHC 合并单元格 //创建ExcelWorkbook wb = new HSSFWorkbook();//创建工作薄Sheet sheet = wb.createSheet(&quo ...

  4. Excel@C#.Net之单元格设置相关

    为什么80%的码农都做不了架构师?>>>    range.NumberFormatLocal = "@";     //设置单元格格式为文本 range = ( ...

  5. 使用NPOI设置Excel表的单元格背景颜色

    使用NPOI设置Excel表的单元格背景颜色 2016年12月15日 15:25:01 起个名字真的好难啊 阅读数:15091更多 个人分类: 文件操作 版权声明:本文为博主原创文章,未经博主允许不得 ...

  6. excel单元格设置自动换行后导出显示不全原因

    1.问题描述: excel制作的模板,单元格设置了自动换行后,导出的excel文件,单元格内容确实换行了,但因为行高问题,单元格内容显示不全,如下图所示: 2.原因: 单元格自动换行确实生效了,但固定 ...

  7. Excel插件获取单元格批注以及设置批注

    Excel插件获取单元格批注以及设置批注 获取批注 设置批注 获取批注 CComQIPtr<Excel::Range> sRange(m_spExcelApp->GetActiveC ...

  8. POI按照源单元格设置目标单元格格式

    原文:http://jjw198874.blog.163.com/blog/static/1889845522011102401854234/ POI按照源单元格设置目标单元格格式 poi按照一个源单 ...

  9. 利用xlwt写excel并进行单元格的合并

    1.写入行列值 import xlwt # 创建一个workbook 设置编码 workbook = xlwt.Workbook(encoding='utf-8') # 创建一个worksheet w ...

最新文章

  1. Java中使用BigDecimal进行浮点数精确计算 超大整数 浮点数等计算,没有数位限制...
  2. 【暴力】UVALive - 4882 - Parenthesis
  3. python1~10阶乘_小练习 python3 阶乘运算
  4. Linq 中 Any与All
  5. java中npe问题,【Java 8】巧用Optional之优雅规避NPE问题
  6. Go语言开发(九)、Go语言并发编程
  7. 作数学题应不该用计算机,数学奥数考试
  8. Jspreadsheet v4:JavaScript 电子表格
  9. 【luogu P3426】SZA-Template(字符串)(KMP)
  10. Tomcat - 解决which must be escaped when used within the value错误
  11. 【江苏大学研究生小记】各方面都不太如意
  12. 利用T0定时器定时 100ms,每当定时时间到就使 P1.7 求反
  13. kaliLinux安装的常见镜像文件以及蓝屏处理
  14. 福禄克同轴适配器DTX-COAX配DTX-1800用
  15. python图形用户界面编程
  16. JAVA学习练习(扎金花与21点)
  17. 李开复的做最好的自己
  18. jQuery做简单的下拉菜单
  19. 预测师的随想系列一:我身边的那些技术厉害的人(who from 微软/亚马逊/谷歌/美团/...)
  20. 微信公众平台对接C#-向微信服务器发送消息

热门文章

  1. 天猫精灵智能设备对接(7) OAuth2.0
  2. 目前hadoop大数据的视频教程谁讲的比较好?我个人对比,欢迎评论补充
  3. 高德地图标识大全_为什么自动驾驶汽车不能使用普通地图导航?
  4. VR虚拟现实3D可视化建模汽车3D在线展示
  5. 直饮净水器科普,直饮净水器哪个牌子好
  6. 输入银行卡号码正确性验证
  7. 6.12 企业内部upp平台(Unified Process Platform)的关键一刻
  8. 【踩坑系列】mysql 修改root密码失败
  9. SQL经典练习题(x30)
  10. openjdk java字体库_java - 在Linux上为Openjdk Java定义/安装的字体在哪里