java吧 关注:1,227,255贴子:12,685,298
  • 5回复贴,共1

有没用过java poi的啊,excel要怎么改单元格内部分字的颜色

只看楼主收藏回复

如题


IP属地:福建来自iPhone客户端1楼2015-05-24 22:14回复
    package TestTwoColorOnSingleCell;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFRichTextString;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.ss.usermodel.CellStyle;
    public class Test {
    public static void main(String[] args) {
    // 创建工作簿
    HSSFWorkbook wb = new HSSFWorkbook();
    // 创建sheet
    HSSFSheet Sheet1 = wb.createSheet("测试在同一个单元格里设置不同的颜色");
    // 设置列宽
    Sheet1.setColumnWidth(0, 20 * 256);
    // 创建行(第一行)
    HSSFRow row = Sheet1.createRow(0);
    // 创建第一列
    HSSFCell cell = row.createCell(0);
    // 创建一个字体
    HSSFFont font1 = (HSSFFont) wb.createFont();
    font1.setFontName("Microsoft YaHei");// 名字
    font1.setFontHeightInPoints((short) 12); // 行高
    font1.setBoldweight((short) 12);// 字体粗度
    font1.setColor(HSSFColor.BLUE.index); // 字体颜色
    // 创建另一个字体
    HSSFFont font2 = (HSSFFont) wb.createFont();
    font2.setFontName("Microsoft YaHei");// 名字
    font2.setFontHeightInPoints((short) 12);
    font2.setBoldweight((short) 12);
    font2.setColor(HSSFColor.RED.index);
    // 创建一个RichTextString字符串,我做了个带括号的实例为了你方便,"Hello,(World!)" 这货length 14
    HSSFRichTextString hrt = (HSSFRichTextString) wb.getCreationHelper()
    .createRichTextString("Hello,(World!)");
    // 给7~13设置font2,也就是红色,"world" 部分
    hrt.applyFont(7, 13, font2);
    // 给最后的括号")"设置蓝色
    hrt.applyFont(13, 14, font1);
    // 这里创建一个style,设置font1,也就是蓝色
    CellStyle style = wb.createCellStyle();
    style.setFont(font1);
    cell.setCellStyle(style);
    cell.setCellType(cell.CELL_TYPE_STRING);// 设置单元格类型
    cell.setCellValue(hrt);// 赋值
    // 写入文件
    writeToFile(wb);
    }
    public static void writeToFile(HSSFWorkbook wb) {
    File file = new File("D://SingleCellButDifferentColor.xls");
    FileOutputStream os;
    try {
    os = new FileOutputStream(file);
    wb.write(os);
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }


    IP属地:北京2楼2015-05-25 00:04
    回复

      效果如图。。。。应该满足了你的要求 QQ:942677933


      IP属地:北京3楼2015-05-25 00:06
      收起回复


        IP属地:福建来自iPhone客户端4楼2015-05-25 08:44
        回复