ajax导出excel文件
时间: 2023-06-22 20:37:39 浏览: 92
导出 Excel 文件可以通过 AJAX 发送请求,后端返回 Excel 文件数据流,前端通过 Blob 对象下载。
以下是一个示例代码:
```javascript
function exportExcel() {
// 发送 AJAX 请求
$.ajax({
url: '/export_excel',
type: 'POST',
dataType: 'json',
success: function(response) {
// 创建 Blob 对象
var blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});
// 创建下载链接
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = 'export.xlsx';
// 点击下载链接
link.click();
},
error: function(error) {
console.log(error);
}
});
}
```
后端代码需要将 Excel 文件数据流以 JSON 格式返回:
```python
import io
import openpyxl
from flask import jsonify, Response
@app.route('/export_excel', methods=['POST'])
def export_excel():
# 创建 Excel 文件
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# 将 Excel 文件保存为数据流
stream = io.BytesIO()
wb.save(stream)
stream.seek(0)
# 返回 JSON 格式的数据流
return jsonify({'data': stream.read().decode('ISO-8859-1')})
```
注意:Excel 文件需要使用第三方库,如 openpyxl。在前端代码中需要引入 jQuery 库。
阅读全文