引入 Sheetjs 的JS
<script src="./xlsx.min.js"></script>
[ { "姓名": "张三", "性别": "男", "年龄": 18 }, { "姓名": "李四", "性别": "女", "年龄": 19 }, { "姓名": "王二麻", "性别": "未知", "年龄": 20 } ]
/**
* JSON转换Excel
*/
function json2Sheet () {
let json = [
{
"姓名": "张三",
"性别": "男",
"年龄": 18
},
{
"姓名": "李四",
"性别": "女",
"年龄": 19
},
{
"姓名": "王二麻",
"性别": "未知",
"年龄": 20
}
]
// 实例化一个工作簿
let book = XLSX.utils.book_new()
// 实例化一个Sheet
let sheet = XLSX.utils.json_to_sheet(json, {
header: ['姓名', '性别', '年龄']
})
// 将Sheet写入工作簿
XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')
// 写入文件,直接触发浏览器的下载
XLSX.writeFile(book, 'json2Sheet.xlsx')
}
[ ['姓名', '性别', '年龄'], ['张三', '男', '18'], ['李四', '女', '19'], ['王二麻', '未知', '20'] ]
/**
* 数组转换Excel
*/
function array2Sheet () {
let data = [
['姓名', '性别', '年龄'],
['张三', '男', '18'],
['李四', '女', '19'],
['王二麻', '未知', '20']
]
// 实例化一个工作簿
let book = XLSX.utils.book_new()
// 实例化一个Sheet
let sheet = XLSX.utils.aoa_to_sheet(data)
// 将Sheet写入工作簿
XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')
// 写入文件,直接触发浏览器的下载
XLSX.writeFile(book, 'array2Sheet.xlsx')
}
如果只有一个表格,可以直接使用 table_to_book 来做,简单直接。@table2Sheet
同样,可以先使用 table_to_sheet,再使用 book_append_sheet 来做。@table2Sheet2
姓名 | 性别 | 年龄 |
---|---|---|
张三 | 男 | 18 |
李四 | 女 | 19 |
王二麻 | 未知 | 20 |
/**
* table转换Excel
*/
function table2Sheet () {
let tableDom = document.querySelector('#table')
let book = XLSX.utils.table_to_book(tableDom)
// 写入文件,直接触发浏览器的下载
XLSX.writeFile(book, 'table2Sheet.xlsx')
}
/**
* table转换Excel
*/
function table2Sheet2 () {
let tableDom = document.querySelector('#table')
// 实例化一个工作簿
let book = XLSX.utils.book_new()
// 实例化一个Sheet
let sheet = XLSX.utils.table_to_sheet(tableDom)
// 将Sheet写入工作簿
XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')
// 写入文件,直接触发浏览器的下载
XLSX.writeFile(book, 'table2Sheet.xlsx')
}
姓名 | 性别 | 年龄 |
---|---|---|
张三 | 男 | 18 |
李四 | 女 | 19 |
王二麻 | 未知 | 20 |
名字 | 类别 |
---|---|
TOM | 猫 |
大黄 | 狗 |
/**
* table转换Excel
*/
function table2SheetMulti () {
let tableDom1 = document.querySelector('#table1')
let tableDom2 = document.querySelector('#table2')
// 实例化一个工作簿
let book = XLSX.utils.book_new()
// 实例化一个Sheet
let sheet1 = XLSX.utils.table_to_sheet(tableDom1)
let sheet2 = XLSX.utils.table_to_sheet(tableDom2)
// 将Sheet写入工作簿
XLSX.utils.book_append_sheet(book, sheet1, 'Sheet1')
XLSX.utils.book_append_sheet(book, sheet2, 'Sheet2')
// 写入文件,直接触发浏览器的下载
XLSX.writeFile(book, 'table2SheetMulti.xlsx')
}