求将mysql数据导出成excel文件的方法 做项目的时候遇到一个问题,在jsp页面里把数据读出来显示为列表,然后有一个导出的按钮,点击生成excel格式的文件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比較快的方法是用HTML輸出 content type用 application/vnd.ms-excel 点按钮的时候可以掉用后台的方法啊,在后台生成Excel文件。生成Excel的类: public static void main(String args[]) { public void show(){ try { //打开文件 WritableWorkbook book = Workbook.createWorkbook(new File( "test.xls " )); //生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet w0 = book.createSheet("第一页 ",0); WritableSheet w1 = book.createSheet("第二页 ",1); WritableSheet w2 = book.createSheet("第三页 ",2); //在Label对象的构造子中指名单元格位置是第一列第一行(0,0),以及单元格内容为test //第一个参数表示列,第二个参数表示行,第三个参数表示数据 Label label = new Label( 0 , 0 , " test " ); //将定义好的单元格添加到工作表中 w0.addCell(label); //生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123 jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 ); w0.addCell(number); //这种方式是以文本字符的形式将数值存储到xls文件中的。 w1.addCell(new Label(0,0,"12")); w1.addCell(new Label(1,0,"21")); w1.addCell(new Label(2,0,"123")); //第二列,第一行==========存储数字必须有Number的实例是 w1.addCell(new Number(1,0,123)); //第二列,第五行 w2.addCell(new Number(1,4,123)); //写入数据并关闭文件 book.write(); book.close(); } catch (Exception e) { System.out.println(e); } } }读取Excel的类:public class ReadExcel { public static void main(String args[]) { try { Workbook book = Workbook.getWorkbook(new File("f:\\test.xls")); //获得第一个工作表对象 Sheet sheet = book.getSheet(0); //得到第一列第一行的单元格 Cell cell1 = sheet.getCell(0,0); String result = cell1.getContents(); System.out.println(result); //得到整个第一列 Cell [] ces = sheet.getColumn(0); for (int i = 0; i < ces.length; i++) { System.err.println(ces[i].getContents()); } //得到整个第一行 Cell [] crs = sheet.getRow(0); for (int i = 0; i < crs.length; i++) { System.err.println(crs[i].getContents()); } book.close(); } catch (Exception e) { System.out.println(e); } }//修改Excel的类public class UpdateExcel { public static void main(String args[]) { try { //Excel获得文件 Workbook wb = Workbook.getWorkbook(new File("f:\\test.xls" )); //打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook book = Workbook.createWorkbook(new File("f:\\test.xls"),wb); //添加一个工作表 //第一个参数:新添加的页面名称。2表示它的位置,从零开始,2表示第三页 WritableSheet sheet = book.createSheet("第二页 ",2); sheet.addCell(new Label(0,0," 第二页的测试数据 " )); book.write(); book.close(); } catch (Exception e) { System.out.println(e); } }}这是代码,感兴趣的话可以加入59673719(IT精英),大家相互学习。 楼上的方法我知道关键是我如何将读取的信息给塞到excel里面 简单的做法就是查出数据,自己利用那个常用的jar包自己写代码转! JXL.JAR, JXLS.JAR。LZ查查这2个JAR包看看? 用jxl poi都能解决这个问题 哥们,你定义方法的时候,吧list传进去啊 你可以点击“导出”,调用一个action,传入查询参数,然后调用后台逻辑(就跟你的结果页面的逻辑一样),使用jxl或者poi弹出excel至于动态填充,可以去看看ireport和jasperreport 求助!!! 如何用tomcat作为代理服务器 spring 事务 Servlet转向jsp失败,显示空白 java知名度就这么高了啊? 求职中遇到关于EJB的问题,大家一起来解决看看。 关于JAVA的内存机制 在客户端调用findAll后逐条显示是不是都很慢? class反编译成java源代码 求助,急 JSP中的DAO如何使用? 加入一句话之后tomcat 报错了 。急.....
生成Excel的类:
public static void main(String args[]) {
public void show(){
try {
//打开文件
WritableWorkbook book = Workbook.createWorkbook(new File( "test.xls " ));
//生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet w0 = book.createSheet("第一页 ",0);
WritableSheet w1 = book.createSheet("第二页 ",1);
WritableSheet w2 = book.createSheet("第三页 ",2);
//在Label对象的构造子中指名单元格位置是第一列第一行(0,0),以及单元格内容为test
//第一个参数表示列,第二个参数表示行,第三个参数表示数据
Label label = new Label( 0 , 0 , " test " );
//将定义好的单元格添加到工作表中
w0.addCell(label);
//生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );
w0.addCell(number);
//这种方式是以文本字符的形式将数值存储到xls文件中的。
w1.addCell(new Label(0,0,"12"));
w1.addCell(new Label(1,0,"21"));
w1.addCell(new Label(2,0,"123"));
//第二列,第一行==========存储数字必须有Number的实例是
w1.addCell(new Number(1,0,123));
//第二列,第五行
w2.addCell(new Number(1,4,123));
//写入数据并关闭文件
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}读取Excel的类:
public class ReadExcel {
public static void main(String args[]) {
try {
Workbook book = Workbook.getWorkbook(new File("f:\\test.xls"));
//获得第一个工作表对象
Sheet sheet = book.getSheet(0);
//得到第一列第一行的单元格
Cell cell1 = sheet.getCell(0,0);
String result = cell1.getContents();
System.out.println(result);
//得到整个第一列
Cell [] ces = sheet.getColumn(0);
for (int i = 0; i < ces.length; i++) {
System.err.println(ces[i].getContents());
}
//得到整个第一行
Cell [] crs = sheet.getRow(0);
for (int i = 0; i < crs.length; i++) {
System.err.println(crs[i].getContents());
}
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
//修改Excel的类
public class UpdateExcel {
public static void main(String args[]) {
try {
//Excel获得文件
Workbook wb = Workbook.getWorkbook(new File("f:\\test.xls" ));
//打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File("f:\\test.xls"),wb);
//添加一个工作表
//第一个参数:新添加的页面名称。2表示它的位置,从零开始,2表示第三页
WritableSheet sheet = book.createSheet("第二页 ",2);
sheet.addCell(new Label(0,0," 第二页的测试数据 " ));
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
}这是代码,感兴趣的话可以加入59673719(IT精英),大家相互学习。
关键是我如何将读取的信息给塞到excel里面
LZ查查这2个JAR包看看?
至于动态填充,可以去看看ireport和jasperreport