<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button onclick="exports()">exports</button>
<script>
const obj = {
title: ['姓名', '年龄', '性别'],
data: [
{ name: '刘德华', age: 36, sex: '男' },
{ name: '成龙', age: 43, sex: '男' },
{ name: '周星驰', age: 42, sex: '男' },
{ name: '黎明', age: 33, sex: '男' },
],
};
function exports() {
/*
[
"姓名,年龄,性别\r\n" 标题名字
"刘德华,36,男\r\n" 每一行数据
"成龙,43,男\r\n"
"周星驰,42,男\r\n"
"黎明,33,男\r\n"
]
*/
let dataStr = [];
let dataType = '\uFEFF'; // 防止乱码
let lineBreakCharacter = '\r\n'; //换行符
let titData = obj.title.join('') + lineBreakCharacter; // 头名数据
let contentData = obj.data.map(val => Object.values(val).join(',') + lineBreakCharacter); // 内容数据
dataStr.push(titData, ...contentData);
const blob = new Blob([dataType + dataStr.join('')], {
type: 'test/csv;charset=utf-8',
});
//导出
const url = window.URL.createObjectURL(blob);
const aDOm = document.createElement('a');
aDOm.href = url;
aDOm.download = 'test.csv';
aDOm.click();
window.URL.revokeObjectURL(url);
}
</script>
</body>
</html>
前端转csv blob createObjectURL
最新推荐文章于 2023-02-02 15:35:52 发布