java导出Excel 改变部分字体颜色,合并单元格,加斜线等

得意得意得意

sheet  wb创建等不再赘述
算了,复制粘贴下:
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet();
改变部分字体颜色: 
                        Font font = wb.createFont();  
	 	        font.setFontHeightInPoints((short) 12); // 字体高度  
	 	        font.setFontName("宋体"); // 字体  
	 	        Font font2 = wb.createFont();  
	 	        font2.setFontHeightInPoints((short) 12); // 字体高度  
	 	        font2.setFontName("宋体"); // 字体  
	 	        font2.setColor(HSSFColor.RED.index);  //颜色
                        XSSFRichTextString ts= new XSSFRichTextString("123456789"); //单元格内容
                       ts.applyFont(0,4,font);  //从零开始,长度4
	 	       ts.applyFont(4,ts.length(),font2);  //从4开始
		       cell.setCellValue(ts);



效果应如图所示():



合并单元格:

CellRangeAddress region = new CellRangeAddress(0,0,(short)0,(short)5);   //四个参数:起始行,终止行,起始列,终止列
 sheet.addMergedRegion(region);
效果应如图所示(ps:合并单元格,第一个单元格的内容会被后面的覆盖):



画线(由左上到右下的斜线) 03版  

                HSSFPatriarch patriarch =  sheet.createDrawingPatriarch();  
	        HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 255, (short)0, 0, (short)0, 1);  
	        HSSFSimpleShape shape1 = patriarch.createSimpleShape(a);  
	        shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);   
	        shape1.setLineStyle(HSSFSimpleShape.LINESTYLE_SOLID) ;

关于这点,有篇不错的博客:http://www.cnblogs.com/firstcsharp/p/4896121.html

2.4.1 用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数

NPOI教程:http://www.cnblogs.com/atao/archive/2009/11/15/1603528.html

之所有说NPOI强大,是因为常用的Excel操作她都可以通过编程的方式完成。这节开始,我们开始学习NPOI的画图功能。先从最简单的开始,画一条直线:

对应的代码为:

复制代码
复制代码
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
HSSFPatriarch patriarch = sheet1.CreateDrawingPatriarch();
HSSFClientAnchor a1 = new HSSFClientAnchor(255, 125, 1023, 150, 0, 0,2, 2);
HSSFSimpleShape line1 = patriarch.CreateSimpleShape(a1);

line1.ShapeType = HSSFSimpleShape.OBJECT_TYPE_LINE;
line1.LineStyle = HSSFShape.LINESTYLE_SOLID;
//在NPOI中线的宽度12700表示1pt,所以这里是0.5pt粗的线条。
line1.LineWidth = 6350;
复制代码
复制代码

通常,利用NPOI画图主要有以下几个步骤:
1. 创建一个Patriarch;
2. 创建一个Anchor,以确定图形的位置;
3. 调用Patriarch创建图形;
4. 设置图形类型(直线,矩形,圆形等)及样式(颜色,粗细等)。

关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数,有必要在这里说明一下:
dx1:起始单元格的x偏移量,如例子中的255表示直线起始位置距A1单元格左侧的距离;
dy1:起始单元格的y偏移量,如例子中的125表示直线起始位置距A1单元格上侧的距离;
dx2:终止单元格的x偏移量,如例子中的1023表示直线起始位置距C3单元格左侧的距离;
dy2:终止单元格的y偏移量,如例子中的150表示直线起始位置距C3单元格上侧的距离;
col1:起始单元格列序号,从0开始计算;
row1:起始单元格行序号,从0开始计算,如例子中col1=0,row1=0就表示起始单元格为A1;
col2:终止单元格列序号,从0开始计算;
row2:终止单元格行序号,从0开始计算,如例子中col2=2,row2=2就表示起始单元格为C3;

最后,关于LineStyle属性,有如下一些可选值,对应的效果分别如图所示:


       



  
  
sheet  wb创建等不再赘述
算了,复制粘贴下:
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet();
改变部分字体颜色: 
                        Font font = wb.createFont();  
	 	        font.setFontHeightInPoints((short) 12); // 字体高度  
	 	        font.setFontName("宋体"); // 字体  
	 	        Font font2 = wb.createFont();  
	 	        font2.setFontHeightInPoints((short) 12); // 字体高度  
	 	        font2.setFontName("宋体"); // 字体  
	 	        font2.setColor(HSSFColor.RED.index);  //颜色
                        XSSFRichTextString ts= new XSSFRichTextString("123456789"); //单元格内容
                       ts.applyFont(0,4,font);  //从零开始,长度4
	 	       ts.applyFont(4,ts.length(),font2);  //从4开始
		       cell.setCellValue(ts);


效果应如图所示():



合并单元格:

CellRangeAddress region = new CellRangeAddress(0,0,(short)0,(short)5);   //四个参数:起始行,终止行,起始列,终止列
 sheet.addMergedRegion(region);
效果应如图所示(ps:合并单元格,第一个单元格的内容会被后面的覆盖):



画线(由左上到右下的斜线) 03版  

                HSSFPatriarch patriarch =  sheet.createDrawingPatriarch();  
	        HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 255, (short)0, 0, (short)0, 1);  
	        HSSFSimpleShape shape1 = patriarch.createSimpleShape(a);  
	        shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);   
	        shape1.setLineStyle(HSSFSimpleShape.LINESTYLE_SOLID) ;

关于这点,有篇不错的博客:http://www.cnblogs.com/firstcsharp/p/4896121.html

2.4.1 用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数

NPOI教程:http://www.cnblogs.com/atao/archive/2009/11/15/1603528.html

之所有说NPOI强大,是因为常用的Excel操作她都可以通过编程的方式完成。这节开始,我们开始学习NPOI的画图功能。先从最简单的开始,画一条直线:

对应的代码为:

复制代码
复制代码
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
HSSFPatriarch patriarch = sheet1.CreateDrawingPatriarch();
HSSFClientAnchor a1 = new HSSFClientAnchor(255, 125, 1023, 150, 0, 0,2, 2);
HSSFSimpleShape line1 = patriarch.CreateSimpleShape(a1);

line1.ShapeType = HSSFSimpleShape.OBJECT_TYPE_LINE;
line1.LineStyle = HSSFShape.LINESTYLE_SOLID;
//在NPOI中线的宽度12700表示1pt,所以这里是0.5pt粗的线条。
line1.LineWidth = 6350;
复制代码
复制代码

通常,利用NPOI画图主要有以下几个步骤:
1. 创建一个Patriarch;
2. 创建一个Anchor,以确定图形的位置;
3. 调用Patriarch创建图形;
4. 设置图形类型(直线,矩形,圆形等)及样式(颜色,粗细等)。

关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数,有必要在这里说明一下:
dx1:起始单元格的x偏移量,如例子中的255表示直线起始位置距A1单元格左侧的距离;
dy1:起始单元格的y偏移量,如例子中的125表示直线起始位置距A1单元格上侧的距离;
dx2:终止单元格的x偏移量,如例子中的1023表示直线起始位置距C3单元格左侧的距离;
dy2:终止单元格的y偏移量,如例子中的150表示直线起始位置距C3单元格上侧的距离;
col1:起始单元格列序号,从0开始计算;
row1:起始单元格行序号,从0开始计算,如例子中col1=0,row1=0就表示起始单元格为A1;
col2:终止单元格列序号,从0开始计算;
row2:终止单元格行序号,从0开始计算,如例子中col2=2,row2=2就表示起始单元格为C3;

最后,关于LineStyle属性,有如下一些可选值,对应的效果分别如图所示:


       



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值