导报表 java导出Excel报表,最好的是那种jar包 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jxl,poi都可以的.如下参考:http://zhidao.baidu.com/question/96368485.htmlhttp://www.oschina.net/code/snippet_35115_2120 现在我要用Ireport做报表模板,谁有ireport的帮助文档,有的麻烦给我发一个,谢谢了 有ireport的API的给我发一个,谢谢了。[email protected] 做个简单的雏形 没用任何的jar包 使用jxl做excel的导入和导出使用iText做word, pdf的导出。 使用JXL解析示例如下:public static File createExcel(List list,List<String> head,List<String> proerty,String fileName ){ //创建输出文件 File file = new File(fileName); int line = 0; int row = 0; int sheetNum = 1; try { //表头格式 WritableCellFormat wcfF = new jxl.write.WritableCellFormat(); wcfF.setAlignment(jxl.format.Alignment.CENTRE); wcfF.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); wcfF.setBackground(Colour.LIGHT_ORANGE); WritableWorkbook wwb = Workbook.createWorkbook(file); WritableSheet ws = wwb.createSheet("第"+sheetNum+"页",sheetNum); //设置冻结首行 ws.getSettings().setVerticalFreeze(1); ws.getSettings().setFitWidth(100); //数据格式 WritableCellFormat dateDcfF = new jxl.write.WritableCellFormat(); dateDcfF.setWrap(true); dateDcfF.setAlignment(jxl.format.Alignment.CENTRE); dateDcfF.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); //控制列宽 ws.setColumnView(0, 20); ws.setColumnView(1, 18); ws.setColumnView(2, 18); ws.setColumnView(3, 18); ws.setColumnView(4, 18); ws.setColumnView(5, 25); ws.setColumnView(6, 18); ws.setColumnView(7, 18); ws.setColumnView(8, 18); ws.setColumnView(9, 18); ws.setColumnView(10, 18); ws.setColumnView(11, 18); ws.setColumnView(12, 18); ws.setColumnView(13, 18); ws.setColumnView(14, 18); ws.setColumnView(15, 18); sheetNum++; //写入表头 for(String str:head){ Label label=new Label(line, 0, str,wcfF); ws.addCell(label); line++; } row++; //写入数据 for(Object obj:list){ line = 0; Class className = obj.getClass(); //反射所有字段 Field[] fields = className.getDeclaredFields(); for(String str:proerty){ for(Field field:fields){ //若该字段是需要导出的字段则写入Excel if(str.equals(field.getName())){ // 修改相应filed的权限 boolean accessFlag = field.isAccessible(); field.setAccessible(true); //读取对象中相应的属性的值 Object value = field.get(obj); String temp =""; if(value!=null){ temp = value.toString(); } if(str.equals("commendTime")){ value = field.get(obj).toString().substring(0, 19); } //设置cell的值 Label label=new Label(line, row, temp,dateDcfF); ws.addCell(label); // 恢复相应field的权限 field.setAccessible(accessFlag); line++; } } } row++; //行数超过10000行是数据放入下一个sheet if(row%10000==0){ //设置标题格式 line = 0; row = 0; ws = wwb.createSheet("第"+sheetNum+"页",sheetNum); //设置冻结首行 ws.getSettings().setVerticalFreeze(1); //控制列宽 //控制列宽 ws.setColumnView(0, 20); ws.setColumnView(1, 18); ws.setColumnView(2, 18); ws.setColumnView(3, 18); ws.setColumnView(4, 18); ws.setColumnView(5, 25); ws.setColumnView(6, 18); ws.setColumnView(7, 18); ws.setColumnView(8, 18); ws.setColumnView(9, 18); ws.setColumnView(10, 18); ws.setColumnView(11, 18); ws.setColumnView(12, 18); ws.setColumnView(13, 18); ws.setColumnView(14, 18); ws.setColumnView(15, 18); sheetNum++; //再次写入表头 for(String str:head){ Label label=new Label(line, 0, str,wcfF); ws.addCell(label); line++; } row++; } } //写入数据并关闭文件 wwb.write(); wwb.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RowsExceededException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return file; }}在struts里面配配置示例:[align=left]<action name="exportRecommendDetail" class="com.ailk.lx100.admin.action.FindRecommendDetailAction" method="exportRecommendDetail"> <result name="success" type="stream"> <param name="contentType">application/octet-stream</param> <param name="inputName">inputStream</param> <param name="contentDisposition">attachment;filename="${fileName}"</param> <param name="bufferSize">4096</param> </result> </action>[/align] 我正在做一个java客户端,遇到一个问题 一个很神奇的问题,ResultSet数据类型问题 js问题--在线等 关于seesion的问题~~ struts标签中选择下拉列表的事件是怎么触发的? 我的EJB问题?请帮忙 学JAVA已经半年了,还不能做点什么!请前辈们指点。 关于JQUERY AJAX JavaEE中Action多方法调用 Intellij IDEA 创建form窗口时报错 hibernate 写法请教 向各位大哥求助,iis+tomcat(jk)整合好后,多主机头(多域名绑定)的问题```
http://zhidao.baidu.com/question/96368485.html
http://www.oschina.net/code/snippet_35115_2120
[email protected]
使用iText做word, pdf的导出。
示例如下:
public static File createExcel(List list,List<String> head,List<String> proerty,String fileName ){
//创建输出文件
File file = new File(fileName);
int line = 0;
int row = 0;
int sheetNum = 1;
try {
//表头格式
WritableCellFormat wcfF = new jxl.write.WritableCellFormat();
wcfF.setAlignment(jxl.format.Alignment.CENTRE);
wcfF.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wcfF.setBackground(Colour.LIGHT_ORANGE);
WritableWorkbook wwb = Workbook.createWorkbook(file);
WritableSheet ws = wwb.createSheet("第"+sheetNum+"页",sheetNum);
//设置冻结首行
ws.getSettings().setVerticalFreeze(1);
ws.getSettings().setFitWidth(100);
//数据格式
WritableCellFormat dateDcfF = new jxl.write.WritableCellFormat();
dateDcfF.setWrap(true);
dateDcfF.setAlignment(jxl.format.Alignment.CENTRE);
dateDcfF.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
//控制列宽
ws.setColumnView(0, 20);
ws.setColumnView(1, 18);
ws.setColumnView(2, 18);
ws.setColumnView(3, 18);
ws.setColumnView(4, 18);
ws.setColumnView(5, 25);
ws.setColumnView(6, 18);
ws.setColumnView(7, 18);
ws.setColumnView(8, 18);
ws.setColumnView(9, 18);
ws.setColumnView(10, 18);
ws.setColumnView(11, 18);
ws.setColumnView(12, 18);
ws.setColumnView(13, 18);
ws.setColumnView(14, 18);
ws.setColumnView(15, 18);
sheetNum++;
//写入表头
for(String str:head){
Label label=new Label(line, 0, str,wcfF);
ws.addCell(label);
line++;
}
row++;
//写入数据
for(Object obj:list){
line = 0;
Class className = obj.getClass();
//反射所有字段
Field[] fields = className.getDeclaredFields(); for(String str:proerty){
for(Field field:fields){
//若该字段是需要导出的字段则写入Excel
if(str.equals(field.getName())){
// 修改相应filed的权限
boolean accessFlag = field.isAccessible();
field.setAccessible(true);
//读取对象中相应的属性的值
Object value = field.get(obj);
String temp ="";
if(value!=null){
temp = value.toString();
}
if(str.equals("commendTime")){
value = field.get(obj).toString().substring(0, 19);
}
//设置cell的值
Label label=new Label(line, row, temp,dateDcfF);
ws.addCell(label);
// 恢复相应field的权限
field.setAccessible(accessFlag);
line++;
}
}
}
row++;
//行数超过10000行是数据放入下一个sheet
if(row%10000==0){
//设置标题格式
line = 0;
row = 0;
ws = wwb.createSheet("第"+sheetNum+"页",sheetNum);
//设置冻结首行
ws.getSettings().setVerticalFreeze(1);
//控制列宽
//控制列宽
ws.setColumnView(0, 20);
ws.setColumnView(1, 18);
ws.setColumnView(2, 18);
ws.setColumnView(3, 18);
ws.setColumnView(4, 18);
ws.setColumnView(5, 25);
ws.setColumnView(6, 18);
ws.setColumnView(7, 18);
ws.setColumnView(8, 18);
ws.setColumnView(9, 18);
ws.setColumnView(10, 18);
ws.setColumnView(11, 18);
ws.setColumnView(12, 18);
ws.setColumnView(13, 18);
ws.setColumnView(14, 18);
ws.setColumnView(15, 18);
sheetNum++;
//再次写入表头
for(String str:head){
Label label=new Label(line, 0, str,wcfF);
ws.addCell(label);
line++;
}
row++;
}
}
//写入数据并关闭文件
wwb.write();
wwb.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return file;
}
}在struts里面配配置示例:[align=left]<action name="exportRecommendDetail"
class="com.ailk.lx100.admin.action.FindRecommendDetailAction" method="exportRecommendDetail">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>[/align]