如何把数据导出成excel或者其他格式文件 比如:我有一个表,里面记录是本月的销售情况,我想把它导出成一个excel表格,如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先将表中的数据读取到List中,然后将List的内容写入excel。前面用到数据库的驱动,后面用到POI包。网上查下相关的。 jxl.jar要用到这个包 给个邮箱给你发个例子 很多例子,建议楼主先google在发帖。 用toad查询表在显示结果中右键有导出文件格式选择 import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import jxl.write.*;import jxl.write.biff.RowsExceededException;import java.util.List;import java.util.ArrayList;import java.util.Iterator;import java.io.File;import java.io.IOException;public class WriteExecl { private String location; private DataSource ds; public WriteExecl(String filename){ ds=new DataSource(); location=filename; } public List<Score> chaxun(){ List<Score> list=new ArrayList<Score>(); Connection con=ds.open(); Statement st=null; ResultSet rs=null; String sql="select * from execl "; try{ st=con.createStatement(); rs=st.executeQuery(sql); while(rs.next()){ Score score=new Score(); score.setSid(rs.getString("sid")); score.setName(rs.getString("name")); score.setHb(rs.getString("hb")); score.setDpj(rs.getString("dpj")); score.setZw(rs.getString("zw")); score.setDmt(rs.getString("dmt")); score.setJava(rs.getString("java")); score.setRjgc(rs.getString("rjgc")); score.setZjwh(rs.getString("zjwh")); score.setWxjs(rs.getString("wxjs")); list.add(score); } }catch(java.sql.SQLException e){ System.out.println("取出数据异常"); e.printStackTrace(); }finally{ if(rs!=null){ try{rs.close();}catch(java.sql.SQLException e1){ System.out.println("rs关闭异常"); rs=null; } if(st!=null){ try{ st.close(); }catch(java.sql.SQLException e2){ System.out.println("st关闭异常"); st=null; } if(con!=null){ try{ con.close(); }catch(java.sql.SQLException e3){ con=null; } } } } } return list; } public int WriteExecl(){ int i=1; List<Score> list=chaxun(); //System.out.println("list的长度"+list.size()); try { jxl.write.WritableWorkbook wb=jxl.Workbook.createWorkbook(new File(location)); jxl.write.WritableSheet sheet=wb.createSheet("网络工程",0); jxl.write.WritableSheet sheet2=wb.createSheet("电子商务",1); jxl.write.WritableSheet sheet3=wb.createSheet("英语",2); jxl.write.WritableSheet sheet4=wb.createSheet("工业设计",3); jxl.write.Label labe0=new jxl.write.Label(0,0,"学号"); jxl.write.Label labe11=new jxl.write.Label(1,0,"学生姓名"); jxl.write.Label labe1=new jxl.write.Label(2,0,"汇编"); jxl.write.Label labe2=new jxl.write.Label(3,0,"单片机"); jxl.write.Label labe3=new jxl.write.Label(4,0,"组网"); jxl.write.Label labe4=new jxl.write.Label(5,0,"多媒体技术"); jxl.write.Label labe5=new jxl.write.Label(6,0,"java"); jxl.write.Label labe6=new jxl.write.Label(7,0,"软件工程"); jxl.write.Label labe7=new jxl.write.Label(8,0,"计算机安装维护"); jxl.write.Label labe8=new jxl.write.Label(9,0,"文件检索"); sheet.addCell(labe0); sheet.addCell(labe1); sheet.addCell(labe2); sheet.addCell(labe3); sheet.addCell(labe4); sheet.addCell(labe5); sheet.addCell(labe6); sheet.addCell(labe7); sheet.addCell(labe8); sheet.addCell(labe11); Iterator it=list.iterator(); String content=null; while(it.hasNext()){ Score score=(Score)it.next(); for(int j=0;j<10;j++){ switch(j){ case 0:content=score.getSid(); break; case 1:content=score.getName(); break; case 2:content=score.getHb(); break; case 3:content=score.getDpj(); break; case 4:content=score.getZw(); break; case 5:content=score.getDmt(); break; case 6:content=score.getJava(); break; case 7:content=score.getRjgc(); break; case 8:content=score.getZjwh(); break; case 9:content=score.getWxjs(); break; } jxl.write.Label label=new jxl.write.Label(j,i,content); try { sheet.addCell(label); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } i++; } wb.write(); wb.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } return i; } public static void main(String[] args) { int j=new WriteExecl("test.xls").WriteExecl(); System.out.println("完成了"+(j-1)+"名同学的execl文档生成"); System.out.println("生成的execl文档名字为:test.xls"); System.out.println("请注意查看"); }} 解析excel文件 jsp显示infopath表单问题 struts2的method方法 如何捕获上传文件过大的的异常 关于ajax的应用 那位高手帮忙看看 Struts标签和jsp里面的<%是不是不能一起使用的? 在WEB页面的文本档中输入汉字,怎样解决汉字被编码成类似奖的编码的问题? JSP 能锚点吗 求教各位老大,如何使用Log4j,同时通过时间和大小两个条件对日志文件进行分割??? 散50分问一简单的问题:为什么我不能够运行EL语法? Tomcat总是自动停止 dwr再部署无法运行问题!!高手帮忙指点!!
前面用到数据库的驱动,后面用到POI包。网上查下相关的。
import java.sql.Statement;
import java.sql.ResultSet;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.io.File;
import java.io.IOException;
public class WriteExecl { private String location;
private DataSource ds;
public WriteExecl(String filename){
ds=new DataSource();
location=filename;
}
public List<Score> chaxun(){
List<Score> list=new ArrayList<Score>();
Connection con=ds.open();
Statement st=null;
ResultSet rs=null;
String sql="select * from execl ";
try{
st=con.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
Score score=new Score();
score.setSid(rs.getString("sid"));
score.setName(rs.getString("name"));
score.setHb(rs.getString("hb"));
score.setDpj(rs.getString("dpj"));
score.setZw(rs.getString("zw"));
score.setDmt(rs.getString("dmt"));
score.setJava(rs.getString("java"));
score.setRjgc(rs.getString("rjgc"));
score.setZjwh(rs.getString("zjwh"));
score.setWxjs(rs.getString("wxjs"));
list.add(score);
}
}catch(java.sql.SQLException e){
System.out.println("取出数据异常");
e.printStackTrace();
}finally{
if(rs!=null){
try{rs.close();}catch(java.sql.SQLException e1){
System.out.println("rs关闭异常");
rs=null;
}
if(st!=null){
try{
st.close();
}catch(java.sql.SQLException e2){
System.out.println("st关闭异常");
st=null;
}
if(con!=null){
try{
con.close();
}catch(java.sql.SQLException e3){
con=null;
}
}
}
}
}
return list;
}
public int WriteExecl(){
int i=1;
List<Score> list=chaxun();
//System.out.println("list的长度"+list.size());
try {
jxl.write.WritableWorkbook wb=jxl.Workbook.createWorkbook(new File(location));
jxl.write.WritableSheet sheet=wb.createSheet("网络工程",0);
jxl.write.WritableSheet sheet2=wb.createSheet("电子商务",1);
jxl.write.WritableSheet sheet3=wb.createSheet("英语",2);
jxl.write.WritableSheet sheet4=wb.createSheet("工业设计",3);
jxl.write.Label labe0=new jxl.write.Label(0,0,"学号");
jxl.write.Label labe11=new jxl.write.Label(1,0,"学生姓名");
jxl.write.Label labe1=new jxl.write.Label(2,0,"汇编");
jxl.write.Label labe2=new jxl.write.Label(3,0,"单片机");
jxl.write.Label labe3=new jxl.write.Label(4,0,"组网");
jxl.write.Label labe4=new jxl.write.Label(5,0,"多媒体技术");
jxl.write.Label labe5=new jxl.write.Label(6,0,"java");
jxl.write.Label labe6=new jxl.write.Label(7,0,"软件工程");
jxl.write.Label labe7=new jxl.write.Label(8,0,"计算机安装维护");
jxl.write.Label labe8=new jxl.write.Label(9,0,"文件检索");
sheet.addCell(labe0);
sheet.addCell(labe1);
sheet.addCell(labe2);
sheet.addCell(labe3);
sheet.addCell(labe4);
sheet.addCell(labe5);
sheet.addCell(labe6);
sheet.addCell(labe7);
sheet.addCell(labe8);
sheet.addCell(labe11);
Iterator it=list.iterator();
String content=null;
while(it.hasNext()){
Score score=(Score)it.next();
for(int j=0;j<10;j++){
switch(j){
case 0:content=score.getSid();
break;
case 1:content=score.getName();
break;
case 2:content=score.getHb();
break;
case 3:content=score.getDpj();
break;
case 4:content=score.getZw();
break;
case 5:content=score.getDmt();
break;
case 6:content=score.getJava();
break;
case 7:content=score.getRjgc();
break;
case 8:content=score.getZjwh();
break;
case 9:content=score.getWxjs();
break;
}
jxl.write.Label label=new jxl.write.Label(j,i,content);
try {
sheet.addCell(label);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
i++;
}
wb.write();
wb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
return i;
}
public static void main(String[] args) {
int j=new WriteExecl("test.xls").WriteExecl();
System.out.println("完成了"+(j-1)+"名同学的execl文档生成");
System.out.println("生成的execl文档名字为:test.xls");
System.out.println("请注意查看"); }}