JAVA,POI导出EXCEL表,表中所有数据都是从后台直接获取,求指导,越详细越好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA,POI导出EXCEL表,表中所有数据都是从后台直接获取,求指导,越详细越好相关的知识,希望对你有一定的参考价值。

举个例子吧

public class CreateSimpleExcelToDisk

/**
* @功能:手工构建一个简单格式的Excel
*/
public static List<Tsxx> getStudent(String[] str) throws Exception

List listts = new ArrayList();
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");

Connection conn = DBUtil.getCon();
String sqlback="";
for(int i=0;i<str.length-1;i++)
sqlback=sqlback+"\"id\"='"+str[i]+"'or";

sqlback=sqlback+"\"id\"='"+str[str.length-1]+"'";

String sql1 = "select * from 表名 where"+sqlback;
System.out.println(sql1 );
ResultSet rs = DBUtil.getResult(conn, sql1);
String outStr = "";

int a=1;
try
while(rs.next())
String objid = rs.getString(1);
String tsname= rs.getString("tsname");
String tstel= rs.getString("tstel");
String tscpname= rs.getString("tscpname");
String tsads=rs.getString("tsads");
String tsqus=rs.getString("tsqus");
String tsno=rs.getString("tsno");
String tsdate=rs.getString("tsdate");
Tsxx user = new Tsxx(a,tsname,tstel,tscpname,tsads,tsqus,tsno,df.parse(tsdate));
listts.add(user);

a++;

catch (SQLException e)
e.printStackTrace();
finally
try
if (rs != null)
rs.close();


if (conn != null)
conn.close();

catch (Exception e)


return listts;

public static void main(String[] args) throws Exception

// // 第一步,创建一个webbook,对应一个Excel文件
// HSSFWorkbook wb = new HSSFWorkbook();
// // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
// HSSFSheet sheet = wb.createSheet("学生表一");
// // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
// HSSFRow row = sheet.createRow((int) 0);
// // 第四步,创建单元格,并设置值表头 设置表头居中
// HSSFCellStyle style = wb.createCellStyle();
// style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//
// HSSFCell cell = row.createCell((short) 0);
// cell.setCellValue("学号");
// cell.setCellStyle(style);
// cell = row.createCell((short) 1);
// cell.setCellValue("姓名");
// cell.setCellStyle(style);
// cell = row.createCell((short) 2);
// cell.setCellValue("年龄");
// cell.setCellStyle(style);
// cell = row.createCell((short) 3);
// cell.setCellValue("生日");
// cell.setCellStyle(style);
//
// // 第五步,写入实体数据 实际应用中这些数据从数据库得到,
// List list = CreateSimpleExcelToDisk.getStudent();
//
// for (int i = 0; i < list.size(); i++)
//
// row = sheet.createRow((int) i + 1);
// Tsxx stu = (Tsxx) list.get(i);
// // 第四步,创建单元格,并设置值
// row.createCell((short) 0).setCellValue((double) stu.getId());
// row.createCell((short) 1).setCellValue(stu.getName());
// row.createCell((short) 2).setCellValue((double) stu.getAge());
// cell = row.createCell((short) 3);
// cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(stu.getBirth()));
//
// // 第六步,将文件存到指定位置
// try
//
// FileOutputStream fout = new FileOutputStream("E:/students.xls");
// wb.write(fout);
// fout.close();
//
// catch (Exception e)
//
// e.printStackTrace();
//
追问

写自己的感觉很晕!

参考技术A

前几天刚好因为工作需要做过相应的excel处理程序编写,这里有一个例子,注释也很详细,具体参见doexecl\\src\\util\\ExeclUtil.java中的writeExcel方法,其中的写出文件的保存路径采用的是配置文件的形式,你也可以直接写死,具体的内容你就看代码吧

追问

可否告知思路,或帮我实现下?

追答

这个思路很简单啊 ,就是把你的数据查出来之后封装成二维数组,然后调用我的写文件的方法就可以了啊,引入jxl.jar这个jar包就可以了,代码里面的注释很清楚啊!!!!你可以按照你的格式随便写一个二维数组生成一下测试一下,这样子你就明白二维数组中的数据和excel中单元格的对应关系了

追问

可是我的数据封装在list集合里的,而且要用POI实现呢

追答

额!!!POI读取excel,jxl写excel文件。二维数组和list是可以相互转换的啊!!!有什么关系呢?

追问

嗯,刚接触的菜鸟,不懂那么多,不过谢谢了,我还想问下

这边我是把每一行的数据封装成一个对象的,图上我所选中的是一组,现在我要把每一组之间都空一行出来,请问要肿么弄呢?

追答

最简单直接的方法就是在你的每组对象封装后好之后在后面插入一条空数据;或者你用jxl写入excel的时候将你的单元格写入的位置再往下移一格,它写入excel的时候设置的前两个参数类似于坐标的形式, 所以第二种方法是你封装对象的时候将每组的对象往下移一格。不过相比较而言还是插入一行空数据的形式比较方便快捷一点!

追问

这是对象的封装,该怎么加额0 0

本回答被提问者和网友采纳
参考技术B 吃点饭就啊

以上是关于JAVA,POI导出EXCEL表,表中所有数据都是从后台直接获取,求指导,越详细越好的主要内容,如果未能解决你的问题,请参考以下文章

如何通过java代码将access数据库表中的数据导出生成excel格式的文件,谢谢各位。

解决java poi导出excel2003不能超过65536行的问题

java poi导出excel问题

Java POI将数据库表查询结果导出到Excel实现及乱码问题

java 利用poi导出默认以表格展示的excel透视表

如何使用Java和apache poi选择excel中的所有单元格