JSBlob:流式二進制大對象

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 18:17
下一篇 2024-12-10 18:17

相關推薦

  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Mapster:一個高性能的對象映射庫

    本文將深入介紹furion.extras.objectmapper.mapster,一個高性能的對象映射庫,解釋它是如何工作的以及如何在你的項目中使用它。 一、輕鬆地實現對象之間的…

    編程 2025-04-28
  • Python返回對象類型

    Python是一種動態、解釋型、高級編程語言。Python是一種面向對象的語言,即所有的一切都是一個對象。 一、基本類型 Python中的基本類型有整數int、浮點數float、布…

    編程 2025-04-28
  • Python中通過對象不能調用類方法和靜態方法的解析

    當我們在使用Python編寫程序時,可能會遇到通過對象調用類方法和靜態方法失敗的問題,那麼這是為什麼呢?接下來,我們將從多個方面對這個問題進行詳細解析。 一、類方法和靜態方法的定義…

    編程 2025-04-27
  • Python內置函數——查看對象內存

    本文將介紹Python內置函數中,在開發中查看對象內存的相關函數。 一、id()函數 id()函數是Python內置函數,用於返回對象的唯一標識符,也就是對象在內存中的地址。 nu…

    編程 2025-04-27
  • 解決ERP運行時錯誤429:ActiveX不能創建對象 DAO350

    ERP運行時錯誤429是由於“ActiveX不能創建對象”而引發的。這種錯誤通常是由於您在嘗試訪問Microsoft Access數據庫時缺少了必要的組件。 一、安裝並註冊DAO庫…

    編程 2025-04-27
  • forof遍歷對象的詳細闡述

    forof是一種ES6的語法糖,用於遍歷可迭代對象。相較於傳統的for循環和forEach方法,forof更加簡潔、易讀,並且可以遍歷各種類型的數據。 一、基本語法 forof的基…

    編程 2025-04-25
  • Vue數組添加對象詳解

    在Vue框架下,我們經常需要用到對數組添加新的對象的功能,在本篇文章中,我們將從以下幾個方面對Vue數組添加對象做詳盡的說明。 一、通過unshift和push方法添加對象 Vue…

    編程 2025-04-25
  • JavaScript創建對象的幾種方式詳解

    JavaScript是一門用於在網頁上實現動態交互效果的編程語言,對於前端開發而言,掌握JavaScript創建對象的幾種方式是必備技能之一。在本文中,我們將從多個方面詳細闡述Ja…

    編程 2025-04-24
  • JS對象的深拷貝與淺拷貝

    一、深拷貝與淺拷貝的概念 在進行JavaScript編程過程中,經常會涉及到對象的拷貝操作。對象的拷貝分為淺拷貝和深拷貝兩種方式。 淺拷貝是指將一個對象複製到另一個對象,產生一個新…

    編程 2025-04-24

發表回復

登錄後才能評論