看代码之前先说一下此导出使用的开发框架,避免某些小可看了半天发现不能用
页面使用的是easyUI JSP
后台使用springboot
前台页面JS代码
function doExcel() {
let frozenColumns = $('#dg').datagrid('options').frozenColumns;
let columns = $('#dg').datagrid('options').columns;
let fieldAndTitle = [];
if (frozenColumns.length > 0 && columns.length > 0) {
for (let i = 0; i < columns.length; i++) {
for (let j = 0; j < frozenColumns.length; j++) {
if (i === j) {
fieldAndTitle.push(frozenColumns[j].concat(columns[i]));
}
if (i > j) {
fieldAndTitle.push(columns[i]);
}
break;
}
}
}
if(columns.length == 0 && frozenColumns.length > 0){
fieldAndTitle = frozenColumns;
}
if(frozenColumns.length == 0 && columns.length > 0){
fieldAndTitle = columns;
}
}
后台一个公用的方法,需要在接口里面调取这个方法,并把相关参数写上去就OK了
@RequestMapping(value = "/export")
public ResponseStatus download(HttpServletResponse response,MapBean mapBean){
ActionResult ar = ActionResult.New();
Map<String,Object> dataMap = paymentReportService.businessOperationList(mapBean,ar);
List<Map<String, Object>> dataList = (List<Map<String, Object>>) dataMap.get("rows");
Workbook workbook = getWorkBook(mapBean.getString("jspTitle"),dataList,mapBean.getString("fieldAndTitle"));
try {
String fileName =new String(mapBean.getString("jspTitle").toString(