vue+springcloud文件导出
1.vue:writeExcel() {writeDriverExcel(this.listQuery).then(res => {this.downloadUrl(res.request.responseURL)})},downloadUrl(url) {const iframe = document.createElement(‘iframe’)iframe.sty...
·
1.vue:
writeExcel() {
writeDriverExcel(this.listQuery).then(res => {
this.downloadUrl(res.request.responseURL)
})
},
downloadUrl(url) {
const iframe = document.createElement(‘iframe’)
iframe.style.display = ‘none’
iframe.src = url
iframe.onload = function() {
document.body.removeChild(iframe)
}
document.body.appendChild(iframe)
},
2.controller层
@RequestMapping("/order")
@Component
public class OrderController {
@RequestMapping(value = "/writeDriverExcel",method = RequestMethod.GET)
public void writeDriverExcel(HttpServletResponse response,TshareOrder order){
try {
//根据查询条件导出
List<Map> list = new ArrayList<>();
Query query = new Query(Criteria.where("needSend").is("2").and("orderStatus").is("1"));
//排序
//Sort.Order so = new Sort.Order(Sort.Direction.DESC,"id");
//Sort sort = new Sort(so);
List<TshareOrder> tshareOrderList = mongoTemplate.find(query, TshareOrder.class);
List<Map> datas = new ArrayList<Map>();
for (TshareOrder tshareOrderR : tshareOrderList) {
Map<String, Object> stringObjectMap = WebUtil.beanToMap(tshareOrderR);
Map<String, Object> data = WebUtil.beanToMap(tshareOrderR);
//封装车牌号
if (!StringUtils.isEmpty(tshareOrderR.getSendPersonId())) {
TshareSystemUser sendUsers = tshareSystemUserRepository.findById(tshareOrderR.getSendPersonId());
String sendUser = "";
if (sendUsers != null) {
sendUser = sendUsers.getRealName();
}
data.put("sendUser", sendUser);
}
datas.add(data);
stringObjectMap = data;
list.add(data);
}
List<ExportCarOrderInfo> list1 = new ArrayList<>();
for(int i=0;i<list.size();i++) {
ExportCarOrderInfo info = new ExportCarOrderInfo();
Map<String, Object> objectMap = new HashMap<>();
objectMap = list.get(i);
//订单时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Object timestamp = objectMap.get("timestamp");
if(timestamp!=null&×tamp!=""){
Date date = (Date)timestamp;
String format1 = format.format(date);
objectMap.put("timestamp",format1);
}
//送车状态
Object sendStatus = objectMap.get("sendStatus");
if(sendStatus!=null&&sendStatus!=""){
String sendStatus1 = (String) sendStatus;
if("1".equals(sendStatus1)){
objectMap.put("sendStatus","未派单");
}else if("5".equals(sendStatus1)){
objectMap.put("sendStatus","已派单");
}else if("10".equals(sendStatus1)){
objectMap.put("sendStatus","送车中");
}else if("15".equals(sendStatus1)){
objectMap.put("sendStatus","送车完成");
}else{
objectMap.put("sendStatus","");
}
}
BeanUtils.populate(info,objectMap);
list1.add(info);
}
String fileName = "carOrderInfo";
String sheetName = "order";
response.setContentType("application/octet- stream");
ExcelUtil.writeExcel(response, list1, fileName, sheetName, new ExportCarOrderInfo());
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.表格所用表头:ExportCarOrderInfo类
@Data
public class ExportCarOrderInfo extends BaseRowModel {
@ExcelProperty(value = "送车id",index = 0)
private String id;
@ExcelProperty(value = "订单时间",index = 1)
private String timestamp;
@ExcelProperty(value = "姓名",index = 2)
private String needPerson;
@ExcelProperty(value = "联系方式",index = 3)
private String needPersonPhone;
@ExcelProperty(value = "预约时间",index = 4)
private String needSendTime;
@ExcelProperty(value = "预约地点",index = 5)
private String needSendAddress;
@ExcelProperty(value = "预约地点坐标",index = 6)
private String needSendLocation;
@ExcelProperty(value = "预约车型",index = 7)
private String groupName;
@ExcelProperty(value = "车牌",index = 8)
private String carPlateNumber;
@ExcelProperty(value = "送车人",index = 9)
private String sendPerson;
@ExcelProperty(value = "送车人联系方式",index = 10)
private String sendPhone;
@ExcelProperty(value = "送车状态",index = 11)
private String sendStatus;
}
4.spring Security配置
更多推荐
已为社区贡献3条内容
所有评论(0)