已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java制作Excel报表简单易用本程序是java程序本程序是通过jxl.jar来实现的。最下面会贴出代码完整例子下载(我放在百度云盘了):/share/link?shareid=2430244382&uk=2232193761里面包括:java源码,jxl.jar 编译后的.class,文档说明文件(如果不需要jar包的话,就可以直接复制下面的源码即可,无需下载了),后续会添加java Web 项目,实现在servlet中调用写的例子生成excel并下载excel功能。简单的讲下如何使用:直接将DoExcelHelper.java放入到项目中修改下package的名就行了。怎么样使用DoExcelHelper这个类:具体的请看DoExcelHelper.java的main方法(也可直接运行main方法,但要注意修改文件保存的路径,不然就会找不到路径哦)。方法说明:setTitle(String)方法是添加报表最顶部的标题的。setF_name(String)添加参数的(key)setF_value(String)添加参数值的(value),请与参数对应即:key:valuesetIsVerticalFreeze(boolean);/是否对header进行冻结,让表头随着滚动条而滚动。默认:falsesetHeader(String)方法是添加要显示的内容的标题的,就好比是table标题(thead).最后调用write(list,F:/workspace/TestFolder/workOrder.xls);/第一个参数:数据集合(ListString);第二个参数:存储路径(我这里是本地路径),如果是在servlet中则是:request.getSession().getServletContext().getRealPath(/)+项目中的文件夹名字/workOrder.xls;最后返回true和false,表示成功与否。下面是代码部分package com.zhb.DBHelper;import java.io.File;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import jxl.Workbook;import jxl.format.UnderlineStyle;import jxl.write.Label;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;/* * 传入各个属性并将数据写入excel * author * 通用报表格式 * 修改时间:2013-07-11 * 修改内容:修改条件显示的格式,由原来的一行显示两个条件信息修改为一行显示一个条件信息,使报表看起来更直观,更简洁 * */public class DoExcelHelper private String title=报表;/标题private String header;/表头private String f_name;/条件名称private String f_value;/条件值private boolean isVerticalFreeze=false;/是否需要对行进行窗口冻结(默认不冻结)/* *main方法 * param args */public static void main(String args) List list=new ArrayList();list.add(new String2013-05-12,user1,user1登入了系统);list.add(new String2013-05-13,user2,user2登入了系统);list.add(new String2013-05-14,user3,user3登入了系统);DoExcelHelper deh=new DoExcelHelper();deh.setTitle(log日志);/添加报表标题String title=操作时间,操作人员,操作内容;deh.setHeader(title);/添加报表的查询字段名称String fname=开始时间,结束时间,操作用户;deh.setF_name(fname);/没有查询字段则直接赋值null/添加报表的查询字段值String fvalue=2012-01-03,2012-01-11,admin,2013-05-06;deh.setF_value(fvalue);/没有查询字段则直接赋值nulldeh.setIsVerticalFreeze(true);/是否对header进行冻结,让表头随着滚动条而滚动。默认:falseboolean bool=deh.write(list,F:/workspace/TestFolder/workOrder.xls);/第一个参数:数据集合;第二个参数:存储路径(我这里是本地路径),如果是在servlet中则是:request.getSession().getServletContext().getRealPath(/)+项目中的文件夹名字/workOrder.xls;System.out.println(bool);/* *方法说明:写入文件操作 *输入参数:数据和输出路径 *返回类型:boolean */ public boolean write(List list,String path) boolean bool=true; try File file=new File(path); /如果path是看null或者path是空值 if(path=null | path.trim().equals() System.out.println(缺少存放文件的路径); return false; int lenght=5; /根据表头的长度来确认合并单元格添加标题 if(this.getHeader()!=null & this.getHeader().length0) lenght=this.getHeader().length; else/判断文件表头是否存在 System.out.println(缺少文件表头); return false; /创建一个可写入的excel文件对象 WritableWorkbook workbook = Workbook.createWorkbook(file); /使用第一张工作表,将其命名为“操作记录日志” WritableSheet sheet = workbook.createSheet(sheet, 0); /去掉整个sheet中的网格线 sheet.getSettings().setShowGridLines(false); /定义标题单元格样式 WritableCellFormat wcf_title = this.getTitle_Font(); /定义条件单元格样式 WritableCellFormat wcf_filter = this.getFilter_Font(); /定义表头单元格样式 WritableCellFormat wcf_head = this.getHeader_Font(); /定义表格内容单元格样式 WritableCellFormat wcf_table = this.getTable_Font(); /左边单元格的样式 WritableCellFormat wcf_leftCell = this.getLeftCell_Font(); int line_num=0;/从第1行开始放数据 /根据表头的长度来确认合并单元格添加标题 sheet.mergeCells(0, line_num, lenght, line_num);/合并第line_num行的地1到this.getHeader().length个单元格 Label label = new Label(0, line_num, this.getTitle(),wcf_title); sheet.addCell(label); /放查询条件的名称和值 line_num+=2;/从第几行开始放条件 if(this.getF_name()!=null) /String content=; for(int i=0;ithis.getF_name().length;i+) Label fn_label = new Label(1, line_num, this.getF_name()i+:,wcf_leftCell); sheet.addCell(fn_label); sheet.mergeCells(2, line_num, 4, line_num);/合并第line_num行的地1到5个单元格 Label fv_label = new Label(2, line_num,this.getF_value()i,wcf_filter); sheet.addCell(fv_label); line_num+; /添加报表生产日期 Label reportDate_label=new Label(1,line_num,报表日期:,wcf_leftCell); sheet.addCell(reportDate_label); sheet.mergeCells(2, line_num, 4, line_num);/合并第line_num行的第2到5个单元格 Label reportDate_value = new Label(2, line_num,new SimpleDateFormat(yyyy-MM-dd).format(new Date(),wcf_filter); sheet.addCell(reportDate_value); /表头 String header=this.getHeader(); line_num+;/从另一行开始添加表头数据 for(int i=0;i0) for(int i=0;ilist.size();i+) String content=(String)list.get(i); for(int j=0;jcontent.length;j+) /普通字符 Label labelCFC = new Label(j, line_num, contentj,wcf_table); sheet.addCell(labelCFC); line_num+; /关闭对象,释放资源 workbook.write(); workbook.close(); catch(Exception e) bool=false; e.printStackTrace(); return bool; /* * 定义标题单元格样式 * return * throws WriteException */ public WritableCellFormat getTitle_Font() throws WriteException /单元格样式 WritableFont wf_title = new WritableFont(WritableFont.ARIAL, 20, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); / 定义格式 字体 下划线 斜体 粗体 颜色 WritableCellFormat wcf_title = new WritableCellFormat(wf_title); / 单元格定义 / wcf_title.setBackground(jxl.format.Colour.BLACK); / 设置单元格的背景颜色 wcf_title.setAlignment(jxl.format.Alignment.CENTRE); / 设置对齐方式 return wcf_title; /* * 定义条件单元格样式 * return * throws WriteException */ public WritableCellFormat getFilter_Font() throws WriteException /单元格样式 WritableFont wf_filter = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); / 定义格式 字体 下划线 斜体 粗体 颜色 WritableCellFormat wcf_filter = new WritableCellFormat(wf_filter); / 单元格定义 /wcf_filter.setBackground(jxl.format.Colour.BLACK); / 设置单元格的背景颜色 wcf_filter.setAlignment(jxl.format.Alignment.LEFT); / 设置对齐方式 return wcf_filter; /* * 表头单元格样式 * return * throws WriteException */ public WritableCellFormat getHeader_Font() throws WriteException/单元格样式 WritableFont wf_head = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN); / 定义格式 字体 下划线 斜体 粗体 颜色 WritableCellFormat wcf_head = new WritableCellFormat(wf_head); / 单元格定义 /wcf_head.setBackground(jxl.format.Colour.BLACK); / 设置单元格的背景颜色 wcf_head.setAlignment(jxl.format.Alignment.CENTRE); / 设置对齐方式 return wcf_head; /* * 表格内容单元格样式 * return * throws WriteException */ public WritableCellFormat getTable_Font() throws WriteException/单元格样式 WritableFont wf_table = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); / 定义格式 字体 下划线 斜体 粗体 颜色 WritableCellFormat wcf_table = new WritableCellFormat(wf_table); / 单元格定义 /wcf_table.setBackground(jxl.format.Colour.BLACK);/ 设置单元格的背景颜色 wcf_table.setAlignment(jxl.format.Alignment.CENTRE);/ 设置对齐方式 return wcf_table; /* * 左边单元格的样式 * return * throws WriteException */ public WritableCellFormat getLeftCell_Font() throws WriteException/单元格样式 WritableFont wf_table = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); / 定义格式 字体 下划线 斜体 粗体 颜色 WritableCellFormat wcf_table = new WritableCellFormat(wf_table); / 单元格定义 wc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校企班协议书
- 股权债务协议书
- 语文古诗课前训练
- 防癌筛查科普知识
- 药剂科药物配置质量控制规范
- 2025版类癌症病常见表现辨析与护理指南
- 2025版风湿科类风湿关节炎症状解析及运动康复护理
- 鼠标的操作方法
- FMEA持续质量改进方法
- 长短句变换训练
- 2025年内蒙古公职人员考试时事政治考试试题(附含答案)
- 公安机房运维知识培训课件
- 《基层常见病诊疗指南》
- 2025年及未来5年中国专用灯具行业市场调研及投资战略研究报告
- 2025年新版中国移动笔试题库及答案
- 2025年湖北省生态环保有限公司招聘33人笔试参考题库附带答案详解
- 集装箱驾驶员管理制度
- 第八章健美操健美操组合动作教学设计人教版初中体育与健康八年级全一册
- 4.11五四运动课件-统编版八年级历史上册
- 肿瘤患者中心静脉血管通路装置相关皮肤损伤临床护理实践指南 2
- 脐带血栓课件
评论
0/150
提交评论