/**
* 导出Excel
* @return
* @throws Exception
*/
@Action
public void exportExcelMC() {
HttpServletRequest request = ActionContext.getActionContext()
.getHttpServletRequest();
HttpServletResponse response = ActionContext.getActionContext()
.getHttpServletResponse();
String[] ID = request.getParameter("ID").split(",");
String[] title = request.getParameter("title").split(",");
String fileName = title+".xls";
com.aspose.cells.License lic_excel = new com.aspose.cells.License();
lic_excel.setLicense(QueryBase.class.getClassLoader()
.getResourceAsStream("com/bop/web/xtgl/query/Aspose.lic"));
Workbook workbook = new Workbook();// 工作簿
List<Map<String, Object>> jsonData = new ArrayList<Map<String,Object>>();
try {
Worksheet sheet = null;
sheet = workbook.getWorksheets().get(0);
sheet.setName("第一页");
jsonData = loadTabRecordJLCY(ID);
Cells cells = sheet.getCells();// 单元格
// 第一行
Style style1 = workbook.createStyle();// 新增样式(数据)
style1.setHorizontalAlignment(TextAlignmentType.CENTER);
style1.getFont().setSize(11);
style1.getFont().setName("宋体");
style1.setBorder(2, 1, Color.getBlack());
style1.setBorder(1, 1, Color.getBlack());
style1.setBorder(4, 1, Color.getBlack());
Style style6 = workbook.createStyle();
style6.setHorizontalAlignment(TextAlignmentType.CENTER);
style6.getFont().setBold(true);
style6.getFont().setSize(22);
style6.getFont().setName("宋体");
Style style7 = workbook.createStyle(); //footer
style7.setBorder(4, 1, Color.getBlack());
// 设置表头
cells.get(0, 0).putValue("序号");
cells.get(0, 0).setStyle(style1);
// 下面匹配数据用
cells.get(0, 1).putValue("姓名");
cells.get(0, 1).setStyle(style1);
cells.get(0, 2).putValue("性别");
cells.get(0, 2).setStyle(style1);
cells.get(0, 3).putValue("单位");
cells.get(0, 3).setStyle(style1);
cells.get(0, 4).putValue("职务");
cells.get(0, 4).setStyle(style1);
cells.get(0, 5).putValue("从事主要业务");
cells.get(0, 5).setStyle(style1);
cells.get(0, 6).putValue("办公室电话");
cells.get(0, 6).setStyle(style1);
cells.get(0, 7).putValue("手机");
cells.get(0, 7).setStyle(style1);
cells.get(0, 8).putValue("微信号");
cells.get(0, 8).setStyle(style1);
cells.get(0, 9).putValue("内网邮箱");
cells.get(0, 9).setStyle(style1);
cells.get(0, 10).putValue("外网邮箱");
cells.get(0, 10).setStyle(style1);
if (jsonData != null && jsonData.size() > 0) {
// 数据格式
Style style2 = workbook.createStyle();
style2.setHorizontalAlignment(TextAlignmentType.CENTER);
style2.getFont().setSize(11);
style2.getFont().setName("宋体");
for (int k = 0; k < jsonData.size(); k++) {
Map<String, Object> datamap = new HashMap<String, Object>();
datamap = jsonData.get(k);
int index = k + 1;
cells.get(index, 0).putValue(index);
cells.get(index, 0).setStyle(style2);
cells.get(index, 1).putValue(datamap.get("姓名"));
cells.get(index, 1).setStyle(style2);
cells.get(index, 1 + 1).putValue(datamap.get("性别"));
cells.get(index, 1 + 1).setStyle(style2);
cells.get(index, 1 + 2).putValue(datamap.get("单位"));
cells.get(index, 1 + 2).setStyle(style2);
cells.get(index, 1 + 3).putValue(datamap.get("职务"));
cells.get(index, 1 + 3).setStyle(style2);
cells.get(index, 1 + 4).putValue(datamap.get("从事主要业务"));
cells.get(index, 1 + 4).setStyle(style2);
cells.get(index, 1 + 5).putValue(datamap.get("办公室电话"));
cells.get(index, 1 + 5).setStyle(style2);
cells.get(index, 1 + 6).putValue(datamap.get("手机"));
cells.get(index, 1 + 6).setStyle(style2);
cells.get(index, 1 + 7).putValue(datamap.get("微信号"));
cells.get(index, 1 + 7).setStyle(style2);
cells.get(index, 1 + 8).putValue(datamap.get("内网邮箱"));
cells.get(index, 1 + 8).setStyle(style2);
cells.get(index, 1 + 9).putValue(datamap.get("外网邮箱"));
cells.get(index, 1 + 9).setStyle(style2);
}
sheet.autoFitColumns();
}
workbook.save(getOutputStream(fileName, response),
FileFormatType.EXCEL_2003_XML);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
private List<Map<String, Object>> loadTabRecordJLCY(String [] ID) {
List<Map<String, Object>> JTCY = new ArrayList<Map<String, Object>>(); // 集体成员数据
StringBuffer JTCY_sql =new StringBuffer();
StringBuffer IDSQL =new StringBuffer("(");
for (int i = 0; i < ID.length; i++) {
if(ID.length-1!=i){
IDSQL.append("'").append(ID[i]).append("',");
}else{
IDSQL.append("'").append(ID[i]).append("'");
}
}
IDSQL.append(")");
JTCY_sql.append( "SELECT ") ;
JTCY_sql.append( "z.A0101 AS 姓名, ") ;
JTCY_sql.append( "d.DMCPT AS 性别, ") ;
JTCY_sql.append( "e.DMCPT AS 单位, ") ;
JTCY_sql.append( "ff.ZDYXA0105F AS 职务, ") ;
JTCY_sql.append( "'' AS 从事主要业务, ") ;
JTCY_sql.append( "b.ZGZH0302 AS 办公室电话, ") ;
JTCY_sql.append( "b.ZGZH0303 AS 手机, ") ;
JTCY_sql.append( "b.ZGZH0304 AS 微信号, ") ;
JTCY_sql.append( "b.ZGZH0305 AS 内网邮箱, ") ;
JTCY_sql.append( "b.ZGZH0306 AS 外网邮箱 ") ;
JTCY_sql.append( "FROM A01 z ") ;
JTCY_sql.append( "LEFT JOIN ZGZH03 b on z.A00=b.ZGZH0301 ") ;
JTCY_sql.append( "LEFT JOIN A01_FUNCTION ff on z.a00=ff.a00 ") ;
JTCY_sql.append( "LEFT JOIN GB22611 d on z.A0104 = d.DMCOD ") ;
JTCY_sql.append( "LEFT JOIN G099 e on z.ZDYXA0121 = e.DMCOD ") ;
JTCY_sql.append( "WHERE z.DELETEFLAG = '0' ") ;
if(!(ID[0].isEmpty())){
JTCY_sql.append( "AND z.A00 IN ").append(IDSQL.toString());
}
JTCY_sql.append( "ORDER BY z.CREATETIME desc ") ;
JTCY = jdbcOperations.queryForList(JTCY_sql.toString());
return JTCY;
}
/**
*
* @param fileName
* @param response
* @return
* @throws IOException
*/
private OutputStream getOutputStream(String fileName,
HttpServletResponse response) throws IOException {
response.reset();
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes("gbk"), "iso-8859-1"));
OutputStream out = response.getOutputStream();
return out;
}