java 如何导出Execl
在js 中 获取ID 传到前台 :
//导出数据
function exportExcel() {
var rows = $('#grid').datagrid('getSelections');
if (rows.length == 0 ) {
$.messager.alert('错误提示', "请选择至少一条记录进行导出!", 'error');
return;
}
var ids ='';
for(var i=0;i<rows.length;i++) {
if(i == 0) {
ids = rows[i].ID;
}else {
ids += ','+rows[i].ID;
}
}
window.open("applyInvoiceAction_exportExcel?id=" + ids);
}
后台 Action :
service 中:
public void exportExcel(String ids ,String filePath)throws DBPServiceException {
WritableWorkbook workbook = null;
try {
List listExcel = new ArrayList();
List list1 = this.queryList("applyInvoice.queryExport", ids);//根据id查出的数据
for(int i=0;i<list1.size();i++) {
// 将listZP。get(i)由map转换为list
Map map = (Map) list1.get(i);
List listValue = new ArrayList();
Iterator it = map.keySet().iterator();
listValue.add(i+1);
while (it.hasNext()) {
String key = it.next().toString();
if("".equals(map.get(key)) || null == map.get(key)) {
listValue.add("");
}else {
listValue.add(map.get(key));
}
}
listExcel.add(listValue);
}
if (listExcel != null ) {
workbook = Workbook.createWorkbook(new File(filePath));
WritableSheet sheet = null;
sheet = workbook.createSheet("sheet1", 0);
Label label = null;
List<String> listTitle = new ArrayList();//单头
listTitle.add("序号");
listTitle.add("开票申请单号");
listTitle.add("应收单号'");
listTitle.add("开票状态");
listTitle.add("项目名称");
listTitle.add("客户名称");
listTitle.add("费用月份");
listTitle.add("开票原因");
listTitle.add("发票方向");
listTitle.add("费用类别");
listTitle.add("扎帐金额");
listTitle.add("金额调整");
listTitle.add("调整原因");
listTitle.add("发票方向");
listTitle.add("发票来源");
listTitle.add("发票类型");
listTitle.add("开票方式");
listTitle.add("购买方");
listTitle.add("购买方税号");
listTitle.add("销售方");
listTitle.add("销售方账号");
listTitle.add("申请人");
listTitle.add("申请时间");
for(int i=0;i<listTitle.size();i++) {//将单头的数据写到Excel 上,从0开始也就是Excel 的第一行
//sheet.mergeCells(i, 0, i, 1);合并 第几列第几行 到第几列第几行
label = new Label(i,0,(String)listTitle.get(i));
sheet.addCell(label);
}
for (int rows = 1; rows < listExcel.size()+1; rows++) {//将数据写到Excel 上 ,从1开始也就是Excel 的二行
for(int cols=0;cols<((List)listExcel.get(rows-1)).size();cols++) {
label= new Label(cols,rows,((List)listExcel.get(rows-1)).get(cols)+"");
sheet.addCell(label);
}
}
workbook.write();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (workbook != null ){
try {
workbook.close();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
最终结果 :