JAVA,POI导出EXCEL表,表中所有数据都是从后台直接获取,求指导,越详细越好
3个回答
2014-10-15
展开全部
举个例子吧
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();
// }
}
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();
// }
}
追问
写自己的感觉很晕!
展开全部
前几天刚好因为工作需要做过相应的excel处理程序编写,这里有一个例子,注释也很详细,具体参见doexecl\src\util\ExeclUtil.java中的writeExcel方法,其中的写出文件的保存路径采用的是配置文件的形式,你也可以直接写死,具体的内容你就看代码吧
更多追问追答
追问
可否告知思路,或帮我实现下?
追答
这个思路很简单啊 ,就是把你的数据查出来之后封装成二维数组,然后调用我的写文件的方法就可以了啊,引入jxl.jar这个jar包就可以了,代码里面的注释很清楚啊!!!!你可以按照你的格式随便写一个二维数组生成一下测试一下,这样子你就明白二维数组中的数据和excel中单元格的对应关系了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |