vue 导出excel 冒号变成下划线了怎么保留冒号
时间: 2023-08-02 11:11:28 浏览: 301
在导出 Excel 文件时,如果遇到了冒号变成下划线的问题,可以尝试使用以下两种方法来保留冒号。
方法一:使用 `raw` 属性
在导出 Excel 文件时,可以在表格中设置 `raw` 属性来保留冒号。具体代码如下:
```javascript
// 导出 Excel 文件
exportExcel() {
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['姓名', '年龄', '地址'];
const filterVal = ['name', 'age', 'address'];
const list = [
{ name: '张三', age: 18, address: '北京:朝阳区' },
{ name: '李四', age: 20, address: '上海:浦东新区' }
];
const data = this.formatJson(filterVal, list);
excel.export_json_to_excel({
header: tHeader,
data,
filename: '导出数据',
autoWidth: true,
bookType: 'xlsx'
});
});
},
// 格式化数据
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {
if (j === 'address') {
return {
v: v[j],
raw: true // 设置 raw 属性
};
}
return v[j];
}));
}
```
上述代码中,我们在格式化数据时,针对 `address` 字段设置了 `raw` 属性,这样在导出 Excel 文件时就可以保留冒号了。
方法二:使用 HTML 实体字符
另外一种方法是使用 HTML 实体字符来替代冒号。具体代码如下:
```javascript
// 导出 Excel 文件
exportExcel() {
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['姓名', '年龄', '地址'];
const filterVal = ['name', 'age', 'address'];
const list = [
{ name: '张三', age: 18, address: '北京:朝阳区' }, // 使用冒号
{ name: '李四', age: 20, address: '上海:浦东新区' }
];
const data = this.formatJson(filterVal, list);
excel.export_json_to_excel({
header: tHeader,
data,
filename: '导出数据',
autoWidth: true,
bookType: 'xlsx'
});
});
},
// 格式化数据
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {
if (j === 'address') {
return v[j].replace(/:/g, ':'); // 替换成 HTML 实体字符
}
return v[j];
}));
}
```
上述代码中,我们在格式化数据时,针对 `address` 字段使用 `replace` 方法将冒号替换成了 HTML 实体字符 `:`,这样在导出 Excel 文件时也可以保留冒号了。
阅读全文