Vue導入導出Excel詳細解析

一、Excel文件的格式

1、Excel文件格式描述:Excel是微軟公司開發的一種電子表格軟件,主要用於數據處理、數據統計及財務管理等方面。Excel文件的格式為.xlsx或者.xls格式,其中.xlsx格式屬於OpenXML文件格式,基於XML格式存儲數據。

2、與Vue結合方案:Vue可以通過導入、導出Excel文件實現數據的批量處理。通過使用Excel文件,我們可以方便地對數據進行調整、編輯,然後再將其導入到Vue中進行數據的操作。

二、導出Excel

1、如何導出?

//導出表格
export function exportExcel() {
  // 創建一個Workbook
  let workbook = XLSX.utils.book_new();
  // 定義表格標題
  let sheetHeader = ["姓名", "年齡", "性別"];
  // 定義表格數據
  let sheetData = [["張三", "18", "男"], ["李四", "20", "女"], ["王五", "22", "男"]];
  // 創建一個Sheet
  let sheet = XLSX.utils.aoa_to_sheet([sheetHeader].concat(sheetData));
  // 將sheet添加到workbook中
  XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");
  // 導出Excel文件
  let excelFile = XLSX.write(workbook, {type: 'binary'});
  let fileName = "table.xlsx";
  saveAs(new Blob([choseArrExcelFile], { type: "application/octet-stream" }), fileName);
}

2、核心API解析:

XLSX是一個開源的JS-XLSX庫,可讀取、解析、寫入Excel文件。其主要包含以下函數:

  • utils.book_new():創建一個Workbook對象
  • utils.aoa_to_sheet():將二維數組轉換成sheet對象
  • utils.book_append_sheet(workbook,sheet,name):將sheet添加到workbook中,name表示sheet名稱
  • XLSX.write():將Workbook對象轉換成二進制文件

三、導入Excel

1、如何導入?

//導入文件變化
fileChange(event) {
  let file = event.target.files[0];
  let reader = new FileReader();
  reader.onload = function (e) {
    const data = new Uint8Array(e.target.result);
    const workbook = XLSX.read(data, { type: "array" });
    const sheets = workbook.Sheets[workbook.SheetNames[0]];
    const table = XLSX.utils.sheet_to_json(sheets);
    console.log(table);
  };
  reader.readAsArrayBuffer(file);
}

2、核心API解析:

從Excel文件中讀取數據,我們首先需要使用FileReader對象讀取文件,並把讀取到的二進制數據傳給XLSX對象的read()方法。read()方法解析二進制數據,並返回一個Workbook對象,Workbook對象包含多個sheet,我們只在這裡讀取第一個sheet(sheets[0]),並將其轉換為JSON格式的數據,最終輸出到控制台中。

  • new FileReader():創建一個FileReader對象
  • reader.onload():對文件進行讀取,讀取完成後調用回調函數
  • new Uint8Array(buffer):使用buffer作為參數創建一個新的無符號整數數組
  • XLSX.read():將二進制數據解析為workbook對象
  • XLSX.utils.sheet_to_json():將sheet對象轉換為JSON格式的數據

四、Vue.js結合實現導入、導出Excel

1、完整代碼示例:

//頭部

import * as XLSX from 'xlsx';
export default {
//導出表格
exportExcel() {
// 創建一個Workbook
let workbook = XLSX.utils.book_new();
// 定義表格標題
let sheetHeader = ["姓名", "年齡", "性別"];
// 定義表格數據
let sheetData = [["張三", "18", "男"], ["李四", "20", "女"], ["王五", "22", "男"]];
// 創建一個Sheet
let sheet = XLSX.utils.aoa_to_sheet([sheetHeader].concat(sheetData));
// 將sheet添加到workbook中
XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");
// 導出Excel文件
let excelFile = XLSX.write(workbook, {type: 'binary'});
let fileName = "table.xlsx";
saveAs(new Blob([choseArrExcelFile], { type: "application/octet-stream" }), fileName);
},
//導入文件變化
fileChange(event) {
let file = event.target.files[0];
let reader = new FileReader();
reader.onload = function (e) {
const data = new Uint8Array(e.target.result);
const workbook = XLSX.read(data, { type: "array" });
const sheets = workbook.Sheets[workbook.SheetNames[0]];
const table = XLSX.utils.sheet_to_json(sheets);
console.log(table);
};
reader.readAsArrayBuffer(file);
},
}

//導入導出示例代碼

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/243920.html

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

相關推薦

  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • 為什麼不能用Microsoft Excel進行Python編程?

    Microsoft Excel是一個廣泛使用的數據分析工具,但是它不能直接用於Python編程。這是因為Microsoft Excel並不是一個編程工具,它的主要功能是進行數據處理…

    編程 2025-04-29
  • 基尼係數Excel計算模板

    這篇文章將介紹基尼係數Excel計算模板,為大家詳細闡述如何使用Excel進行基尼係數的計算。 一、模板下載及導入 首先需要下載基尼係數的Excel計算模板,可以在Excel中通過…

    編程 2025-04-28
  • Vue3的vue-resource使用教程

    本文將從以下幾個方面詳細闡述Vue3如何使用vue-resource。 一、安裝Vue3和vue-resource 在使用vue-resource前,我們需要先安裝Vue3和vue…

    編程 2025-04-27
  • ThinkPHP6 + Vue.js: 不使用Fetch的數據請求方法

    本文將介紹如何在ThinkPHP6和Vue.js中進行數據請求,同時避免使用Fetch函數。 一、AJAX:XMLHttpRequest的基礎使用 在進行數據請求時,最基礎的方式就…

    編程 2025-04-27
  • Vue模擬按鍵按下

    本文將從以下幾個方面對Vue模擬按鍵按下進行詳細闡述: 一、Vue 模擬按鍵按下的場景 在前端開發中,我們常常需要模擬按鍵按下的場景,比如在表單中填寫內容後,按下「回車鍵」提交表單…

    編程 2025-04-27
  • 開發前端程序,Vue是否足夠?

    Vue是一個輕量級,高效,漸進式的JavaScript框架,用於構建Web界面。開發人員可以使用Vue輕鬆完成前端編程,開發響應式應用程序。然而,當涉及到需要更大的生態系統,或利用…

    編程 2025-04-27
  • 使用ReoGrid操作Excel的WPf應用

    本文將詳細闡述如何使用ReoGrid來操作Excel,重點介紹在WPF應用程序中使用ReoGrid的方法及注意點。 一、ReoGrid簡介 ReoGrid是一個基於.NET的開源組…

    編程 2025-04-27
  • 如何在Vue中點擊清除SetInterval

    在Vue中點擊清除SetInterval是常見的需求之一。本文將介紹如何在Vue中進行這個操作。 一、使用setInterval和clearInterval 在Vue中,使用set…

    編程 2025-04-27

發表回復

登錄後才能評論