采用application/vnd.ms-excel导出excel时修改文件名
时间: 2023-09-22 15:05:56 浏览: 57
你可以在导出Excel文件时,通过设置HTTP响应头中的Content-Disposition属性来修改文件名。具体来说,你需要在代码中添加如下语句:
```
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=your_file_name.xls");
```
其中,response代表HTTP响应对象,your_file_name.xls是你想要设置的文件名。这样设置后,在用户下载Excel文件时,文件名就会被设置为your_file_name.xls。
相关问题
js修改采用application/vnd.ms-excel导出excel时修改文件名
在使用`application/vnd.ms-excel`导出Excel文件时,可以通过设置HTTP头部信息来修改文件名。
以下是一个示例:
```javascript
const fileName = 'example.xlsx';
const data = '...'; // Excel文件内容
const blob = new Blob([data], { type: 'application/vnd.ms-excel' });
const link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
```
在这个例子中,我们创建了一个Blob对象,将Excel文件内容传入其中,并将其类型设置为`application/vnd.ms-excel`。然后,我们创建了一个`<a>`元素,将Blob对象的URL赋值给其`href`属性,并将文件名赋值给其`download`属性。最后,我们触发了该`<a>`元素的click事件,从而启动下载。
通过这种方式,你可以在导出Excel文件时,为其指定一个自定义的文件名。
整合代码 提供公共方法 // 设置响应头 response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); response.setHeader("Content-Disposition", "attachment;filename=btfhList.xlsx"); // 使用 Easy Excel 写入数据到 Excel 文件 ExcelWriter writer = EasyExcel.write(response.getOutputStream(), DaHfysLog.class).build(); WriteSheet sheet = EasyExcel.writerSheet("恢复用户列表").build(); writer.write(list, sheet); writer.finish();
可以将上述代码进行封装,提供一个公共方法,方便其他地方调用。示例代码如下:
```
public void exportExcel(HttpServletResponse response, List<Object> dataList, Class<?> clazz, String sheetName, String fileName) throws IOException {
// 设置响应头
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
// 使用 Easy Excel 写入数据到 Excel 文件
ExcelWriter writer = EasyExcel.write(response.getOutputStream(), clazz).build();
WriteSheet sheet = EasyExcel.writerSheet(sheetName).build();
writer.write(dataList, sheet);
writer.finish();
}
```
使用方法如下:
```
List<Object> dataList = new ArrayList<>();
// 添加数据到 dataList 中
exportExcel(response, dataList, DaHfysLog.class, "恢复用户列表", "btfhList.xlsx");
```
其中,`response` 是 HttpServletResponse 对象,`dataList` 是要导出的数据列表,`clazz` 是数据实体类的 Class 对象,`sheetName` 是 Excel 文件的 sheet 名称,`fileName` 是 Excel 文件的文件名。