将查询出的listmap 导出excel 实例 边看图边看代码


sqlExport  是我们传过来的sql

databaseOracle 是连接数据库   这是封装的 自己可以用简单的方法连接自己的数据库就行了

resultExport  这是最终的listMap  你只要查出这个 然后下面的代码就可以直接用了

public String exportRruAlarmAsCsv() {
List<Map> resultExport = null;
//System.out.println("sqlExport:::" + sqlExport);
if (null != sqlExport && !"".equals(sqlExport)) {
Session session = databaseOracle.openSession();
Writer sw = null;
CSVWriter writer = null;
try {
resultExport = session.queryForList(sqlExport);
if (resultExport.size() > 0) {
getResponse().setHeader("Content-Disposition","attachment; filename=RruAlram.csv");
getResponse().setContentType("application/vnd.ms-csv;CHARSET=gbk");
getResponse().setCharacterEncoding("gbk");

sw = getResponse().getWriter();
writer = new CSVWriter(sw);
Map m = resultExport.get(0);
Iterator it = m.keySet().iterator();
int cnt = m.size();
String[] headerStr = new String[cnt];
int k = 0;

while (it.hasNext()) {
String key = (String)it.next();
headerStr[k++] = key;
}

writer.writeNext(headerStr);
int count = 1;

for (int i = 0; i < resultExport.size(); i++) {
Map map = resultExport.get(i);

String[] valueArr =new String[cnt];
        for(int x=0; x < headerStr.length; x++){
        valueArr[x]=String.valueOf( map.get(headerStr[x]));
        }
        
writer.writeNext(valueArr);

if(count % 100 == 0){
writer.flush();
}
count++;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(sw!=null)
sw.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if(writer!=null)
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if(session!=null)
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值