pdf模式 数据库数据导出
*
* 导出
* @throws FileNotFoundException
*/
public String excel() throws FileNotFoundException{
//放到tomcat下
String fileName="用户管理";
String pathName=ServletActionContext.getRequest().getSession().getServletContext().getRealPath("")+"\\export\\"+fileName+".xls";
//4.1定义表头
String tableName="T_USER";
String tableCName = selectDataService.getString("select comments from user_tab_comments where table_name =‘"+tableName+"‘");
//4.2获取表的中文注释
List<Map> list=selectDataService.queryForList("select t.column_name,t.comments from user_col_comments t where table_name =‘"+tableName+"‘");
//4.2 创建一个list
List<String> columns=new ArrayList<String>();
Map<String, String> colmap=new TreeMap<String, String>();
for (Map map:list) {
//把数据库里的注释取出来,放到columns里
columns.add(map.get("COMMENTS").toString());
//把數據庫的中文注釋放到map集合中
colmap.put(map.get("COMMENTS").toString(), map.get("COLUMN_NAME").toString());
}
// 1创建hssfworkbook
HSSFWorkbook hssfwork=new HSSFWorkbook();
// 2创建sheet
HSSFSheet sheet = hssfwork.createSheet(tableCName);
// 3创建标题row(行)
HSSFRow row = sheet.createRow(0);
// 4创建单元格
for (int i = 0; i < columns.size(); i++) {
//創建單元格
HSSFCell createCell = row.createCell(i);
//把取出來的值放进单元格里
createCell.setCellValue(list.get(i).get("COMMENTS").toString());
}
//5 从数据库里取出所有数据
List<Map> dataList=selectDataService.queryForList("select * from "+tableName);
//6便利下所有数据
//i循环是循环一条一条的 ,j循环是循环一条数据里的每个值
for (int i = 0; i < dataList.size(); i++) {
//获取一行一行的数据
Map cols=dataList.get(i);
//创建标题行
HSSFRow rowdata = sheet.createRow(i+1);
System.out.println("cols>>>"+cols);
//j循环是循环一条数据里的每个值
for (int j = 0; j < cols.size(); j++) {
//放到每个单元格里
String fangyuange = columns.get(j);
//去英文字段
String ing = colmap.get(fangyuange);
//放到列种
Object value = cols.get(ing);
//创建单元格(通过行)放进单元格
HSSFCell cell = rowdata.createCell(j);
cell.setCellValue(value.toString());
}
}
FileOutputStream fos=new FileOutputStream(pathName);
//放进路径
try {
hssfwork.write(fos);
ServletActionContext.getResponse().getWriter().write("ok");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。