JSBlob是流式二進制大對象的縮寫,是HTML5引入的一個新API,可以用於處理二進制數據。通過JSBlob,我們可以將二進制數據轉換為Blob對象,然後進行上傳、下載、預覽等操作。
一、JSBlob轉Excel
JSBlob可以將數據轉換為Excel文件,可以用於數據導出功能的實現。
const data = [
['name', 'age', 'gender'],
['Tom', 18, 'male'],
['Lucy', 20, 'female'],
['Jack', 21, 'male']
]
const wb = XLSX.utils.book_new()
const ws = XLSX.utils.aoa_to_sheet(data)
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
const wbout = XLSX.write(wb, { type: 'blob', bookType: 'xlsx' })
saveAs(wbout, 'data.xlsx')
二、JSBlob數據類型
JSBlob支持以下數據類型:
- ArrayBuffer:二進制數據,可以通過DataView進行解析
- Blob:二進制對象
- File:文件對象
- MediaSource:音視頻數據
- ReadableStream:可讀流數據
三、JSBlob轉字符串
JSBlob可以將二進制數據轉換為字符串,可以用於處理後台返回的二進制數據。
const fileReader = new FileReader()
fileReader.readAsText(blob)
fileReader.onload = e => {
const result = e.target.result
console.log(result)
}
四、JSBlob上傳和預覽
JSBlob可以通過XMLHttpRequest進行上傳,也可以通過URL.createObjectURL創建預覽鏈接。
const xhr = new XMLHttpRequest()
xhr.open('POST', 'upload')
xhr.onload = () => {
console.log('上傳成功')
}
xhr.send(blob)
const url = URL.createObjectURL(blob)
const image = document.createElement('img')
image.src = url
document.body.appendChild(image)
五、JSBlob轉換成字符串
JSBlob可以將二進制數據轉換為字符串,可以用於數據加密、傳輸等場景。
const fileReader = new FileReader()
fileReader.readAsDataURL(blob)
fileReader.onload = e => {
const result = e.target.result
console.log(result)
}
JSBlob是一個非常強大的API,可以通過它實現很多二進制數據處理相關的功能。掌握JSBlob可以提高代碼的效率和質量,為開發高質量的Web應用提供幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/230726.html
微信掃一掃
支付寶掃一掃