SSM实现导出报表为Excel
生活随笔
收集整理的這篇文章主要介紹了
SSM实现导出报表为Excel
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
報(bào)表主頁(yè)面代碼
<script type="text/javascript">function exportuserOrderExcel(obj){var form = $(obj).parents("form");var url = $('#userBillForm').attr("action");$('#userBillForm').attr("action", url + "?" + form.serialize());? ?$('#userBillForm').submit();$('#userBillForm').html("");}</script><form id="userBillForm" style="display: none;" method="post" action="${ctx}/bus/userBillSerailAction/doExport"><div style="margin-top: 5px;"><!-- 刷新按鈕--><button class="btn btn-orange" data-icon="refresh">刷新</button><button class="btn btn-blue" data-icon="sign-out" onclick="exportuserOrderExcel(this)">導(dǎo)出</button></div>action代碼
@RequestMapping(value = "doExport", method=RequestMethod.POST)public void doExport(String paramCustomerName,Integer pageSize, Integer pageCurrent, String orderField, String orderDirection,HttpServletResponse response) {try {PageResult<BusUserBillserialExt> pageResult = PageUtil.pageSet(this.getClass(), pageSize, pageCurrent, orderField, orderDirection);pageResult.setPageSize(null);pageResult.setPageCurrent(null);pageResult.setOrderField("bub.recordTime");pageResult.setOrderDirection("desc");String fileName = "**賬單流水-"+DateUtils.getDate("yyyyMMddHHmmss")+".xls";// 組裝參數(shù)Map<String, Object> param = new HashMap<String, Object>();param.put("status", "0");if (StringUtils.isNotBlank(paramCustomerName)) {param.put("orderNumber", paramCustomerName);}// 分別查詢結(jié)果集List<BusUserBillserialExt> billserials = new ArrayList<BusUserBillserialExt>();pageResult = this.billService.exportUserBillDetailsByParam(pageResult);if(pageResult.getList().size()>0) {billserials=pageResult.getList();}// 構(gòu)造 sheet 標(biāo)題List<String[]> columNames = new ArrayList<String[]>();List<String[]> fieldNames = new ArrayList<String[]>();List<String[]> groupNames = new ArrayList<String[]>();LinkedHashMap<String, List<?>> dataMap = new LinkedHashMap<String, List<?>>();List<String> titles = new ArrayList<String>();//if(billserials != null && billserials.size() > 0){columNames.add(new String[] {"商戶流水ID","商戶名稱","訂單類型","交易方式","交易金額","是否使用紅包","使用紅包金額","交易賬號(hào)","交易姓名","交易時(shí)間","交易類型","備注" });fieldNames.add(new String[] {"id", "customerName","orderTypeName","payType", "payPrice","isUseRedPackageName","useRedPackagePrice","transactionNum","transactionName","transactionTimeChanged","transactionTypeName","remark"});dataMap.put("**賬單", billserials);titles.add("**賬單流水");}ExcelExportData setInfo = new ExcelExportData();setInfo.setDataMap(dataMap);setInfo.setFieldNames(fieldNames);String[] titlesArray = new String[titles.size()];setInfo.setTitles(titles.toArray(titlesArray));???setInfo.setGroupColumn(groupNames);setInfo.setColumnNames(columNames);ExportExcelMultiSheet.export2Client(response, fileName, setInfo);?} catch (Exception e) {LogService.getInstance(this).debug(e);}}
?
service代碼
?public PageResult<BusUserBillserialExt> exportUserBillDetailsByParam(PageResult<BusUserBillserialExt> pageResult);serviceImpl代碼
public PageResult<BusUserBillserialExt> exportUserBillDetailsByParam(PageResult<BusUserBillserialExt> pageResult){if(pageResult.getPageSize()!=null||pageResult.getPageCurrent()!=null) {pageResult.getParam().put("offset", pageResult.getPageSize() * (pageResult.getPageCurrent() - 1));pageResult.getParam().put("limit", pageResult.getPageSize());}if (!"".equals(pageResult.getOrderField())) { pageResult.getParam().put("orderColumn", pageResult.getOrderField()); }pageResult.getParam().put("orderTurn", pageResult.getOrderDirection());List<BusUserBillserialExt> data = dao.getUserBillDetailsByParam(pageResult.getParam());pageResult.setList(data);int totalSize = dao.countOfUserBillByParam(pageResult.getParam());pageResult.setTotal(totalSize);return pageResult;}dao代碼
public List<BusUserBillserialExt> getUserBillDetailsByParam(Map<String, Object> param);mapper代碼
<!-- 結(jié)果集 -->????<resultMap id="BaseResultMapExt" type="**.model.ext.BusUserBillserialExt" extends="BaseResultMap"><result column="transactionTypeName" property="transactionTypeName" jdbcType="VARCHAR" /><result column="orderTypeName" property="orderTypeName" jdbcType="VARCHAR" /><result column="isUseRedPackageName" property="isUseRedPackageName" jdbcType="VARCHAR" /></resultMap><!-- 關(guān)聯(lián)碼表獲得導(dǎo)出訂單數(shù)據(jù) --><select id="getUserBillDetailsByParam" parameterType="java.util.Map" resultMap="BaseResultMapExt">selectbub.*,sc.CodeName? transactionTypeName,sc1.CodeName orderTypeName,sc2.CodeName isUseRedPackageNameFROMbus_user_billserial bubLEFT JOIN sys_code sc ON sc.codeType = "merchantTransactionType"AND sc.CodeValue = bub.TransactionTypeLEFT JOIN sys_code sc1 ON sc1.codeType = "orderType"AND sc1.CodeValue = bub.OrderTypeLEFT JOIN sys_code sc2 ON sc2.codeType = "signType"AND sc1.CodeValue = bub.IsUseRedPackage</select>Model代碼
public class BusUserBillserialExt extends BusUserBillserial implements java.io.Serializable{private static final long serialVersionUID = 1L;//碼表字段private String transactionTypeName;private String orderTypeName;private String isUseRedPackageName;//格式化日期private String transactionTimeChanged;public String getOrderTypeName() {return orderTypeName;}public void setOrderTypeName(String orderTypeName) {this.orderTypeName = orderTypeName;}public String getTransactionTypeName() {return transactionTypeName;}public void setTransactionTypeName(String transactionTypeName) {this.transactionTypeName = transactionTypeName;}public String getIsUseRedPackageName() {return isUseRedPackageName;}public void setIsUseRedPackageName(String isUseRedPackageName) {this.isUseRedPackageName = isUseRedPackageName;}public String getTransactionTimeChanged() {if(getTransactionTime()!=null) {transactionTimeChanged=DateUtil.formatDate(getTransactionTime(),"yyyy-MM-dd HH:mm:ss");}return transactionTimeChanged;}public void setTransactionTimeChanged(String transactionTimeChanged) {this.transactionTimeChanged = transactionTimeChanged;} }
?
效果
?
總結(jié)
以上是生活随笔為你收集整理的SSM实现导出报表为Excel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSM查看详情功能逻辑代码以及关联码表显
- 下一篇: AndroidSDK下载以及配置