`
1021082712
  • 浏览: 86467 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

jxl 打印excel,样式设置

    博客分类:
  • java
阅读更多

运用jxl导出excel,并设置一些打印的样式:

public void outputExcel(HttpServletRequest request, HttpServletResponse response,String title)throws  IOException
	{
		//获取输出流 
		OutputStream os = response.getOutputStream(); 
		HttpSession session=request.getSession();
		String oprator=(String)session.getAttribute("yhxm");
		//设置编码  
		response.setHeader("Content-disposition", "attachment; filename="+"cprdpxx"+".xls");// 设定输出文件头 
		request.setCharacterEncoding("utf-8");  
		//设置文件格式
		response.setContentType("application/vnd.ms-excel;charset=utf-8");
 		//加标题    
		//标题字体   
		//设置单元格字体,位置
		jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.COURIER, 18, WritableFont.BOLD, true);  
		jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 
		try {
			wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
			wcfFC.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);    
			//字段字体   
			jxl.write.WritableFont wfc1 = new jxl.write.WritableFont(WritableFont.COURIER, 12, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, Colour.BLACK);  
			jxl.write.WritableCellFormat wcfFC1 = new jxl.write.WritableCellFormat(wfc1);
			wcfFC1.setBorder(Border.NONE,BorderLineStyle.THIN,Colour.GRAY_50);
			//设置字体位置
			wcfFC1.setAlignment(jxl.format.Alignment.CENTRE);  
			wcfFC1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
			//////////////////////////////////////////////
			//2013/7/17
			//标题字体
			jxl.write.WritableFont wfc3 = new jxl.write.WritableFont(WritableFont.COURIER, 14, WritableFont.BOLD, false,UnderlineStyle.NO_UNDERLINE, Colour.BLACK);  
			jxl.write.WritableCellFormat wcfFC3 = new jxl.write.WritableCellFormat(wfc3);
			wcfFC3.setBorder(Border.NONE,BorderLineStyle.THIN,Colour.GRAY_50);
			//设置字体位置
			wcfFC3.setAlignment(jxl.format.Alignment.CENTRE);  
			wcfFC3.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);  
			////////////////////////////////////////////////
			//查询结果字体  
			jxl.write.WritableCellFormat wcfFC2 = new jxl.write.WritableCellFormat();  
			wcfFC2.setAlignment(jxl.format.Alignment.CENTRE); 
			wcfFC2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);   
			WritableWorkbook wbook = Workbook.createWorkbook(os);  
			//设置默认字体
			WritableFont font=new WritableFont(WritableFont.COURIER, 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
			WritableCellFormat cFormat = new WritableCellFormat(font);
			cFormat.setAlignment(jxl.format.Alignment.CENTRE);
			cFormat.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.GRAY_50);
			cFormat.setBackground(Colour.WHITE);
			//2013/7/17
			//设置信息头栏字体
			WritableFont font11=new WritableFont(WritableFont.COURIER, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
			WritableCellFormat cFormat11 = new WritableCellFormat(font11);
			cFormat11.setAlignment(jxl.format.Alignment.CENTRE);
			cFormat11.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.GRAY_50);
			cFormat11.setBackground(Colour.WHITE);
			
			
			//写sheet名称 
			WritableSheet wsheet = wbook.createSheet("长江大学职称评审投票信息统计表", 0);
			//设置单元格默认列宽
			wsheet.getSettings().setDefaultColumnWidth(10);
			wsheet.getSettings().setDefaultRowHeight(350);
                        //设置sheet页面水平打印
                         wsheet.getSettings().setHorizontalCentre(true);
			//默认为横向打印//2013/7/17
			wsheet.setPageSetup(PageOrientation.LANDSCAPE.LANDSCAPE,PaperSize.A4,0.5d,0.5d);
			/**
			 * lrr 2014-05-27 BEGIN
			 * 功能描述:设置页码格式:第 X 页(共 X 页)
			 */
//			wsheet.setFooter("", "&P", "");//过时的方法
			··HeaderFooter footer = new HeaderFooter();
			··Contents contentsFooter = footer.getCentre();  
		    contentsFooter.setFontSize(10);  
		    contentsFooter.append("第 ");
		    contentsFooter.appendPageNumber();
		    contentsFooter.append(" 页 ( 共 ");
		    contentsFooter.appendTotalPages();  
		    contentsFooter.append(" 页 )");
			//设置打印标题行
//			wsheet.getSettings().setVerticalFreeze(3);
			SheetSettings ss=wsheet.getSettings();
			ss.setFooter(footer);// 设置页脚
			/**
			 * lrr 2014-05-27 END
			 * 功能描述:设置页码格式:第 X 页(共 X 页)
			 */
//			ss.setPrintTitles(0,2,0,10);
			ss.setPrintTitlesRow(0,2);//设置固定打印标题
			ss.setOrientation(PageOrientation.LANDSCAPE);
			wsheet.setPageSetup(PageOrientation.LANDSCAPE);
			
			//标题   
			wsheet.mergeCells(0, 0, 10, 0);
			/**
			 * lrr 2014-05-24 改 BEGIN
			 * 功能描述:修改投票信息统计表格式
			 */
			wsheet.addCell(new jxl.write.Label(0, 0, "长江大学职称评审投票信息统计表",wcfFC3));//设置统计表标题
			WritableFont font1=new WritableFont(WritableFont.COURIER, 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
			WritableCellFormat cFormat1 = new WritableCellFormat(font1);
			cFormat1.setAlignment(jxl.format.Alignment.RIGHT);
			cFormat1.setBorder(Border.NONE,BorderLineStyle.THIN,Colour.GRAY_50);
			cFormat1.setBackground(Colour.WHITE);
			wsheet.addCell(new jxl.write.Label(0,1,"评审日期:"+(new SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date())) ,cFormat1));//合计列
			/**
			 * lrr 2014-05-24 改 END
			 * 功能描述:修改投票信息统计表格式
			 */			
			/**
			 * 以下为从数据库中查询数据添加到wsheet中
			 */	
			PersistenceManagerOfZcps pmoz=new PersistenceManagerOfZcps();
			String zsql="select count(*) from view_cprdp where 1=1 "+title;//总人数
			//String xb_n_sql="select count(*) from view_cprxx where xb='1'";//性别男 人数
			String hj="";//合计
			String sql="select * from view_cprdp where 1=1 "+title;
//			String year=request.getParameter("year");
			sql+="order by year_dm desc,zcbh asc,ls,ty_num desc,cpbh";
//            //System.out.println("sql="+sql);
			ResultSet rs=pmoz.executeQuery(sql);
			List<zc_cprdpxx> cprdp_list=new ArrayList<zc_cprdpxx>();
			int zs = 0;//参评人总人数
			int ns=0;//男参评人数
			try {
				while(rs.next())
				{
					zc_cprdpxx zp=new zc_cprdpxx();
					PersistenceManagerOfZcps pm=new PersistenceManagerOfZcps();
						zp.setYear(rs.getString("year_mc")==null?"":rs.getString("year_mc").trim());
						zp.setCpbh(rs.getString("cpbh")==null?"":rs.getString("cpbh").trim());
						zp.setCpxm(rs.getString("cpxm")==null?"":rs.getString("cpxm").trim());
						zp.setLxdh(rs.getString("lxdh")==null?"":rs.getString("lxdh").trim());
						zp.setTy_num(rs.getString("ty_num")==null?"":rs.getString("ty_num").trim());
						zp.setBty_num(rs.getString("bty_num")==null?"":rs.getString("bty_num").trim());
						zp.setQq_num(rs.getString("qq_num")==null?"":rs.getString("qq_num").trim());
						zp.setSftg(rs.getString("sftg")==null?"":rs.getString("sftg").trim());
						zp.setLs(rs.getString("ls")==null?"":rs.getString("ls").trim());
						zp.setZwm(rs.getString("zwm_mc")==null?"":rs.getString("zwm_mc").trim());//2013/7/21
						zp.setZcbh(pm.getPureCode_zcm(rs.getString("zcbh")==null?"":rs.getString("zcbh").trim()));	
						zp.setCprzt(pm.getPureCode("code_zczt", rs.getString("zcbh").substring(1, 2)));
						pm.close();
						//zp.setNl(rs.getString("nl")==null?"":rs.getString("nl").trim());
						
						cprdp_list.add(zp);				
				}
				rs=pmoz.executeQuery(zsql);
				while(rs.next())
				{
					 zs=rs.getInt(1);
				}
				rs.close();
			   }catch (SQLException e) {
				 os.close();
				// TODO Auto-generated catch block
				this.cwts("导出失败,请稍后重试!", response);
				e.printStackTrace();
			}
			finally
			{
				pmoz.close();//关闭数据连接
			}
			
 			
			
			//hj="评委总人数为:"+String.valueOf(zs)+"     性别        男:"+String.valueOf(ns)+"   女:"+String.valueOf(zs-ns);
			wsheet.mergeCells(0, 1, 10, 1);//合并0到10单元格
			//wsheet.addCell(new jxl.write.Label(0,1,hj ,cFormat));//合计列
			// 设置固定的打印标题//2013/7/17
////		wsheet.getSettings().setPrintArea(0, 2, 0,7);
//		SheetSettings setting = wsheet.getSettings();  
//		setting.setPrintTitlesRow(0, 3); 
		
			int i = 0;
			int j=0;
			//String[] colum={"年度","参评人编号","单位名称","参评人姓名","性别","申报职称级别","申报职称名称"};
			//2013/7/17修改
			String[] colum={"年度", "参评人编号","工作单位","参评人姓名", "申报职称","申报状态","轮数","同意数","不同意数","弃权数","是否通过"};
			for (i = 0; i <11; i++) {   
				// 加入行字段名    
				wsheet.addCell(new jxl.write.Label(i, 2, colum[i],      cFormat11));
				} 
			for(i=3;i<cprdp_list.size()+3;i++)
			{
				wsheet.addCell(new jxl.write.Label(0,i, cprdp_list.get(i-3).getYear(),      cFormat));
				wsheet.addCell(new jxl.write.Label(1,i, cprdp_list.get(i-3).getCpbh(),      cFormat));
				wsheet.addCell(new jxl.write.Label(2,i, cprdp_list.get(i-3).getLxdh(),      cFormat));
				wsheet.addCell(new jxl.write.Label(3,i, cprdp_list.get(i-3).getCpxm(),      cFormat));
				wsheet.addCell(new jxl.write.Label(4,i, cprdp_list.get(i-3).getZwm(),      cFormat));
				wsheet.addCell(new jxl.write.Label(5,i, cprdp_list.get(i-3).getCprzt(),      cFormat));
				wsheet.addCell(new jxl.write.Label(6,i, cprdp_list.get(i-3).getLs(),      cFormat));
				wsheet.addCell(new jxl.write.Label(7,i, cprdp_list.get(i-3).getTy_num(),      cFormat));
				wsheet.addCell(new jxl.write.Label(8,i, cprdp_list.get(i-3).getBty_num(),      cFormat));
				wsheet.addCell(new jxl.write.Label(9,i, cprdp_list.get(i-3).getQq_num(),      cFormat));
				wsheet.addCell(new jxl.write.Label(10,i, cprdp_list.get(i-3).getSftg(),      cFormat));
 				
			} 
			
			wsheet.mergeCells(0, i, 10, i);//合并0到10单元格
			/**
			 * lrr 2014-05-24 增 BEGIN
			 * 功能描述:增加四行:1.监票人 2.评审委员会主任
			 */
			wsheet.addCell(new jxl.write.Label(0,i,"制表人:"+oprator ,cFormat1));//合计列
			i = i+1;
			wsheet.mergeCells(0, i, 10, i+1);//合并两行并同时合并单元格
			wsheet.addCell(new jxl.write.Label(0,i,"监票人:       " ,cFormat1));//合计列
			i = i+2;
			wsheet.mergeCells(0, i, 10, i+1);//合并两行并同时合并单元格
			wsheet.addCell(new jxl.write.Label(0,i,"评审委员会主任:       " ,cFormat1));//合计列
			/**
			 * lrr 2014-05-24 增 END
			 * 功能描述:增加两行:1.监票人 2.评审委员会主任
			 */
			wbook.write();   
			wbook.close();  
			
		} catch (WriteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			//this.cwts("导出失败,请稍后重试!", response);
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
			//this.cwts("导出失败,请稍后重试!", response);
		 }finally{  
			 try{
			     os.close();
			    } catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
					//this.cwts("导出失败,请稍后重试!", response);
				 }
		}
	}	

 相应的jxl.jar在附件中可下载。

 

WritableSheet.mergeCells(0, 0, 0, 1);//合并单元格,第一个参数:要合并的单元格最左上角的列号,第二个参数:要合并的单元格最左上角的行号,第三个参数:要合并的单元格最右角的列号,第四个参数:要合并的单元格最右下角的行号

  • jxl.jar (708.7 KB)
  • 下载次数: 0
0
1
分享到:
评论
1 楼 贝塔ZQ 2017-07-05  
处理excel,PageOffice插件处理的也蛮好的。可以试试

相关推荐

    JXL 读取EXCEL

    标题 "JXL 读取EXCEL" 涉及到的是使用Java Excel Library(简称JXL)这个开源库来处理Microsoft Excel文件。JXL是一个强大的工具,它允许开发者在Java程序中读取、写入和修改Excel文件。下面将详细介绍JXL库以及如何...

    JXL读写Excel小例子

    通过深入学习JXL库的文档,你可以根据需要实现更多功能,如读写公式、处理日期和时间、设置单元格样式等。 总的来说,JXL是一个实用的工具,尤其适合那些不希望依赖于Microsoft Office或Apache POI库,但又需要在...

    jxl JAVA Excel解析

    它支持多种操作,如创建新的工作簿、读取现有工作簿、修改工作表内容、添加公式、设置单元格样式等。JXL库的使用极大地简化了Java程序与Excel文件的交互。 ### 2. 使用JXL库的基本步骤 要使用JXL库,首先需要在项目...

    jxl 实现excel导入导出

    除了基本的读写操作,`jxl`库还支持更复杂的特性,如样式设置(字体、颜色、边框)、公式计算、图表创建等。同时,`jxl`库也能够处理多种Excel文件格式,包括`.xls`(Excel 97-2003)和`.xlsx`(Excel 2007及以上...

    jxl解析excel

    jxl库支持读取和写入Excel文件中的工作表、单元格、公式、样式等元素,同时也支持处理图像和图表。这个库简单易用,适合在Java项目中快速实现Excel文件的处理功能。 二、安装jxl库 要使用jxl库,首先需要将其添加到...

    jxl操作excel实例,jxl jar包下载

    这可以通过将`jxl.jar`放在`lib`目录下或在IDE(如Eclipse、IntelliJ IDEA)中设置为库依赖来实现。确保正确导入`jxl`相关的包,如`jxl.write.WritableWorkbook`、`jxl.read.BiffRecord`等。 接下来,让我们看一个...

    jxl读取excel数据(带实例)

    JXL库是一个广泛使用的开源库,它允许开发者轻松地读取和写入Excel文件。本文将详细介绍如何使用JXL库来读取Excel数据,并通过一个实际的代码示例进行演示。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,...

    JXL 实现Excel的导入及开发包

    这个例子会打印出Excel文件第一张工作表的所有数据。 ### 2. 写入Excel数据 写入数据到Excel文件同样需要创建`Workbook`和`Sheet`对象,然后在特定位置设置`Cell`的值。以下是一个写入数据的示例: ```java ...

    Java利用JXL读写Excel

    写入Excel文件则涉及到创建新的`Workbook`、`Sheet`和`Cell`,并设置它们的值。以下是一个简单的写入Excel文件的例子: ```java import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; ...

    利用jxl读取Excel代码的完整内容,包括jar包

    此外,jxl库提供了丰富的API,可以实现更多功能,如读取特定类型的单元格(数字、日期等)、修改Excel内容以及处理样式和公式等。通过深入学习jxl文档,你可以更好地掌握这个工具,从而更高效地处理Excel文件。 ...

    jxl读取excel的java代码小程序

    对于复杂的数据结构,例如合并的单元格或自定义样式,JXL也提供了相应的接口进行处理。 在实际应用中,我们可能需要根据业务需求对数据进行进一步处理,例如将数据存储到数据库。在这种情况下,可以将读取的Excel...

    关于使用Jxl生成Excel并打印的经验总结.pdf

    在Java中,打印Excel文件通常需要借助第三方库,如上述代码所示,通过`ExcelApplication`类来控制Excel应用程序进行打印。首先创建`ReleaseManager`和`ExcelApplication`对象,打开Excel文件,获取活动工作表,调用`...

    关于使用Jxl生成Excel并打印的经验总结.docx

    如果你需要打印Excel文件,Jxl本身并不提供直接的打印功能。不过,你可以利用Java的其他库,如Apache POI,或者像示例中那样使用原生的Excel应用程序接口(API)来实现。以下是一个使用原生Excel API进行打印的简单...

    jxl预览和打印报表

    "jxl预览和打印报表"是一种利用开源Java库——jxl来实现的功能,它能够帮助开发者高效地处理Excel格式的数据,进行报表的生成、预览以及打印操作。下面将详细阐述这一技术的知识点。 首先,jxl库是一个强大的Java ...

    jxl操作excel表格

    更新Excel文件通常涉及到修改单元格的值、样式、公式等。首先,你需要找到要修改的`Cell`,然后调用相应的修改方法。例如,要修改单元格的值,可以使用`Cell.setContents()`。 ```java Cell cell = sheet.getCell(0...

    Java操作Excel(jxl.jar)

    此外,jxl还支持读写Excel的样式信息,包括边框、填充、条件格式等。这使得在Java中处理Excel文件时可以实现与Excel原生应用相似的视觉效果。 总结来说,jxl.jar库是Java操作Excel的一个实用工具,它提供了丰富的...

    公司真正项目使用jxl操作excel代码程序

    本项目中的“公司真正项目使用jxl操作excel代码程序”是一个具体的实例,展示了如何利用Java的jxl库来与Excel文件进行交互,以满足公司报表打印的需求。 jxl是一个开源的Java库,它允许开发人员读取、写入和修改...

    Jxl读写Excel例子demo(2)

    Jxl提供了对Excel文件格式的全面支持,包括单元格类型(文本、数字、日期等)、样式(字体、颜色、对齐方式)以及工作表和工作簿的操作。它能够处理.xls格式的文件,这是Excel 97-2003使用的文件格式。 要使用Jxl库...

    jxl pdf excel

    使用jxl,你可以创建新的工作簿,添加工作表,设置单元格样式,填充数据,甚至进行公式计算。对于处理Excel数据,这是一个非常方便的工具,尤其适用于需要从Excel文件导入数据到Java应用程序,或者将程序生成的数据...

Global site tag (gtag.js) - Google Analytics