前言
项目里是不是经常有导出excel功能,下面教你直接教你一键导出下载excel,话不多多说,上才艺!
注:代码不可直接使用运行,简单参考吧 ( • ̀ω•́ )✧
前端代码示例
<button ng-click="export()" type="button" class="btn btn-success btn-flat">导出到Excel</button>
$scope.export = function() {
$scope.fileDown('/export',"get", {
a:a,
b:b
}).success(function (data) {
if(!data){
return;
}
if(!data.result){
toaster.error(data.message);
}
});
}
后端代码示例
当然你也可以用一个对象接收参数
导出工具你也可以用其他的
@RequestMapping(value = "/export", method = RequestMethod.GET)
public void exportLimitGoodsInfo(
HttpServletResponse response,Long a, Long b)
throws IOException {
try {
//自己项目查询数据list
List<xxx> list = xxxx;
String[] header = {"商品", "商品名称"};
Object[][] data = new Object[list.size()][];
for (int i = 0; i < data.length; i++) {
Object[] ob = new Object[header.length];
IgmGoodsLimitAuditView imv = list.get(i);
ob[0] = imv.getProductId();
ob[1] = imv.getProductName();
data[i] = ob;
}
String filename = "数据" + DateUtil.convert(new Date()) + ".xls";
response.setHeader("content-type", "application/vnd.ms-excel");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + filename);
if (data.length > 5000) {
ExcelUtil.exportOneBigSheet(null, header, data, response.getOutputStream());
} else {
ExcelUtil.exportOneSheet(null, header, data, response.getOutputStream());
}
response.setStatus(HttpStatus.CREATED.value());
} catch (Exception e) {
e.printStackTrace();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
BizResult res = BizResult.fail("导出失败,请刷新后尝试!", String.class);
response.getOutputStream().write(URLEncoder.encode(JSONObject.toJSONString(res), "UTF-8").getBytes());
} finally {
response.getOutputStream().close();
}
}
public static void exportOneBigSheet(String sheetName, String[] headers, Object[][] obj, OutputStream outputStream) {
SXSSFWorkbook workbook = new SXSSFWorkbook();
bulidBigData(workbook, sheetName, headers, obj, 0);
try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param sheetName 表格名
* @param headers 表头
* @param obj 值
*/
public static void exportOneSheet(String sheetName, String[] headers, Object[][] obj, OutputStream outputStream) {
XSSFWorkbook workbook = new XSSFWorkbook();
bulidData(workbook, sheetName, headers, obj, 0);
try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}