国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端導(dǎo)入導(dǎo)出excel記錄

這篇具有很好參考價(jià)值的文章主要介紹了前端導(dǎo)入導(dǎo)出excel記錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

序言

前端模塊的導(dǎo)入導(dǎo)出excel功能,大體分為兩個(gè)邏輯。

  1. 前端使用導(dǎo)入組件,獲取excel,交給后端處理
  2. 前端使用導(dǎo)入組件,獲取excel,自己解析數(shù)據(jù),然后調(diào)用數(shù)據(jù)存儲(chǔ)的方法。

我們分別對(duì)這兩種方法進(jìn)行記錄。

后端處理

導(dǎo)出

組件:

<el-button type="primary" @click="downloadGlossary">Download</el-button>

方法:

const downloadGlossary = () => {
  downGlossary({})
}

api:

export function downGlossary(data) {
    return download("/conf/asr/glossary/export", data,"Vocabulary.xls")
}

util:

export function download(url, params, filename, config) {
  let downloadLoadingInstance = ElLoading.service({ text: "download,wait...", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
  return service.post(url, params, {
    headers: { 'Content-Type': 'application/json' },
    responseType: 'blob',
    ...config
  }).then(async (data) => {
    const isLogin = blobValidate(data);
    if (isLogin) {
      const blob = new Blob([data])
      saveAs(blob, filename)
    } else {
      const resText = await data.text();
      const rspObj = JSON.parse(resText);
      const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
      ElMessage.error(errMsg);
    }
    downloadLoadingInstance.close();
  }).catch((r) => {
    ElMessage.error(r)
    downloadLoadingInstance.close();
  })
}

導(dǎo)入

組件:

<el-upload
   :action="upload.url"
    class="upload"
    accept=".xlsx, .xls"
    :show-file-list="false"
    :multiple="false"
    :on-success="afterUpload"
    :on-error="afterUpload"
>
  <el-button type="primary">Upload</el-button>
</el-upload>
const upload = {
  // 設(shè)置上傳的請(qǐng)求頭部
  // headers: { Authorization: "Bearer " + getToken() },
  // 上傳的地址
  url: `${import.meta.env.VITE_APP_BASE_API}/conf/asr/glossary/import?userId=${localStorage.getItem('userData') ? JSON.parse(localStorage.getItem('userData')).userId : ''}`,
}

方法:

const afterUpload = res=> {
  if (res.success) {
    ElMessage.success('Upload Success!');
    getGlossaryData()
    return
  }
  ElMessage.error(res.message)
}

自己解析

工具方法:

import * as XLSX from "xlsx" // 需要npm install
import FileSaver from "file-saver";  // 需要npm install

export function readExcelToJson(file) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.onload = (e) => {
            let data = new Uint8Array(e.target.result);
            let workbook = XLSX.read(data, { type: "array" });
            //將Excel 第一個(gè)sheet內(nèi)容轉(zhuǎn)為json格式
            let worksheet = workbook.Sheets[workbook.SheetNames[0]];
            let json = XLSX.utils.sheet_to_json(worksheet);
            resolve(json);
        };
        reader.readAsArrayBuffer(file);
    });
}
export function saveJsonToExcel(data, filename) {
    let sheet = XLSX.utils.json_to_sheet(data);
    let workbook = {
        SheetNames: ["sheet1"],
        Sheets: {
            sheet1: sheet,
        },
    };
    let wbout = XLSX.write(workbook, {
        bookType: "xlsx",
        bookSST: true,
        type: "array",
    });
    FileSaver.saveAs(
        new Blob([wbout], { type: "application/octet-stream" }),
        filename
    );
}

導(dǎo)入

組件寫(xiě)法:(這里用的elementPlus)

<el-upload
	class="upload"
	accept=".xlsx, .xls"
	:show-file-list="false"
	:multiple="false"
	:before-upload="handleGlossaryUpload"
>
	<el-button type="primary">Upload</el-button>
</el-upload>

方法代碼:

const handleGlossaryUpload = (uploadFile) => {
  // 格式錯(cuò)誤時(shí)直接退出上傳。
  if (uploadFile.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' && uploadFile.type !== 'application/vnd.ms-excel'){
    ElMessage.error('文件格式錯(cuò)誤!')
    return false
  }
  readExcelToJson(uploadFile).then(res => {
  	// res即為解析excel后的數(shù)據(jù)
    res.map(item => {
      addGlossary(item) // 調(diào)用新增數(shù)據(jù)的方法
    })
    ElMessage.success('上傳成功!')
  }).catch((err) => {
    ElMessage.error('上傳失?。?)
  })
}

導(dǎo)出

組件代碼:

<el-button type="primary" @click="downloadGlossary">Download</el-button>

方法代碼:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-531331.html

const downloadGlossary = () => {
  const storage = JSON.parse(localStorage.getItem('glossaryRes')) || []  // 獲取json格式數(shù)據(jù)源
  const jsonData = storage.length ? storage : [{A: 'demo',B: 'omed', id: 0}]
  const newJsonData = jsonData.map(({id, ...rest}) => rest)
  saveJsonToExcel(JSON.parse(JSON.stringify(newJsonData)),'Vocabulary.xls')
}

到了這里,關(guān)于前端導(dǎo)入導(dǎo)出excel記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【vue導(dǎo)入導(dǎo)出Excel】vue簡(jiǎn)單實(shí)現(xiàn)導(dǎo)出和導(dǎo)入復(fù)雜表頭excel表格功能【純前端版本和配合后端版本】

    【vue導(dǎo)入導(dǎo)出Excel】vue簡(jiǎn)單實(shí)現(xiàn)導(dǎo)出和導(dǎo)入復(fù)雜表頭excel表格功能【純前端版本和配合后端版本】

    前言 這是一個(gè)常用的功能,就是導(dǎo)入和導(dǎo)出excel表格 但是時(shí)常會(huì)遇到一些復(fù)雜表頭的表格導(dǎo)出和導(dǎo)入 比如我這個(gè)案例里面的三層表頭的表格。 網(wǎng)上看了下發(fā)現(xiàn)了一個(gè)非常簡(jiǎn)單導(dǎo)出和導(dǎo)入方法 當(dāng)然這個(gè)是純前端的版本,會(huì)出現(xiàn)分頁(yè)不好下載的情況。所以實(shí)際工作中,導(dǎo)出還是

    2024年02月11日
    瀏覽(27)
  • react-前端excel 文件/PDF文件 導(dǎo)入 --導(dǎo)出,照片上傳

    react-前端excel 文件/PDF文件 導(dǎo)入 --導(dǎo)出,照片上傳

    需要了解,new FormData() --上傳時(shí),將內(nèi)容轉(zhuǎn)為文件流 ? ? ? ? ? ? ? ? ? FormData提供一種表示表單數(shù)據(jù)的鍵值對(duì)的構(gòu)造方式,實(shí)現(xiàn)表單數(shù)據(jù)的序列化,從而減少表單元素的拼接,提高工作效率 ? ? ? ? ? ? ? ? ?new FileReader()--base64壓縮,目前不了解 一、excel文件導(dǎo)出 ? ? ?三

    2023年04月08日
    瀏覽(24)
  • Vue3 exceljs庫(kù)實(shí)現(xiàn)前端導(dǎo)入導(dǎo)出Excel

    Vue3 exceljs庫(kù)實(shí)現(xiàn)前端導(dǎo)入導(dǎo)出Excel

    最近在開(kāi)發(fā)項(xiàng)目時(shí)需要批量導(dǎo)入和導(dǎo)出Excel數(shù)據(jù),在實(shí)現(xiàn)這個(gè)需求時(shí),我們既可以在前端完成數(shù)據(jù)解析和文件生成工作,也可以通過(guò)前端發(fā)起導(dǎo)入以及導(dǎo)出請(qǐng)求后,后端實(shí)現(xiàn)解析文件流解析文件內(nèi)容以及生成文件并提供下載鏈接的功能。 相較于后端處理Excel數(shù)據(jù)而言,使用前

    2024年03月14日
    瀏覽(18)
  • vue+xlsx實(shí)現(xiàn)前端模版下載、導(dǎo)入和導(dǎo)出excel文件

    vue+xlsx實(shí)現(xiàn)前端模版下載、導(dǎo)入和導(dǎo)出excel文件

    產(chǎn)品需求:后端不想寫(xiě)下載,導(dǎo)入和導(dǎo)出的接口,讓我們前端自己實(shí)現(xiàn)。 這里我們就可以用xlsx插件來(lái)實(shí)現(xiàn),我們不多說(shuō)了,先放一下實(shí)現(xiàn)的圖片,下面我們分別把模版下載、導(dǎo)入和導(dǎo)出的代碼放上來(lái),想用的話(huà),直接復(fù)制粘貼即可! 模版下載圖片 導(dǎo)出圖片: 好了,下面我

    2024年02月13日
    瀏覽(95)
  • Excel 導(dǎo)入導(dǎo)出(前端處理:xslx)(后端處理:hutool+poi || Easy Excel )

    Excel 導(dǎo)入導(dǎo)出(前端處理:xslx)(后端處理:hutool+poi || Easy Excel )

    ? 目錄 Excel 導(dǎo)入導(dǎo)出(前端處理:xslx) 代碼示例 導(dǎo)入Excel數(shù)據(jù) 將數(shù)據(jù)封裝好后傳給后端? 導(dǎo)出數(shù)據(jù) 預(yù)覽(vue-office/excel\\\"……;docx-preview) Excel 導(dǎo)入導(dǎo)出(后端處理:hutool+poi || Easy Excel ) 前端 后端使用Hutool處理Excel 文件 Hutool-poi是針對(duì)Apache POI的封裝,因此需要用戶(hù)自行引入

    2024年01月24日
    瀏覽(39)
  • 【Go】excelize庫(kù)實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出封裝(三),基于excel模板導(dǎo)出excel

    【Go】excelize庫(kù)實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出封裝(三),基于excel模板導(dǎo)出excel

    大家好,這里是符華~ 關(guān)于excelize庫(kù)實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出封裝,我已經(jīng)寫(xiě)了兩篇了,我想要的功能基本已經(jīng)實(shí)現(xiàn)了,現(xiàn)在還差一個(gè)模板導(dǎo)出,這篇文章就來(lái)講講如何實(shí)現(xiàn)用模板導(dǎo)出excel。 前兩篇: 【Go】excelize庫(kù)實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出封裝(一),自定義導(dǎo)出樣式、隔行背景色、自適應(yīng)

    2024年01月25日
    瀏覽(64)
  • java poi導(dǎo)入Excel、導(dǎo)出excel

    java poi導(dǎo)入Excel、導(dǎo)出excel ReadPatientExcelUtil PoiUtils FileUtils

    2024年02月15日
    瀏覽(27)
  • laravel excel導(dǎo)入導(dǎo)出

    版本2.1和現(xiàn)在版本 有所不一樣 config配置文件夾中excel.php,配置生成文件的地址

    2024年02月10日
    瀏覽(20)
  • EasyPio導(dǎo)入導(dǎo)出excel表格

    EasyPoi是一個(gè)功能強(qiáng)大且易于使用的Java Excel操作框架,其主要特點(diǎn)如下: 簡(jiǎn)單易用:EasyPoi提供簡(jiǎn)潔而直觀的API,使Java開(kāi)發(fā)人員能夠輕松地進(jìn)行Excel導(dǎo)入導(dǎo)出操作,無(wú)需繁瑣的代碼和復(fù)雜的配置。 支持多種數(shù)據(jù)源:EasyPoi支持從數(shù)據(jù)庫(kù)、List集合、Map等各種數(shù)據(jù)源快速生成Excel文

    2024年02月12日
    瀏覽(21)
  • POI 實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出

    什么是POI Apache POI 是用Java編寫(xiě)的免費(fèi)開(kāi)源的跨平臺(tái)的 Java API,Apache POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫(xiě)的功能。POI為“Poor Obfuscation Implementation”的首字母縮寫(xiě),意為“簡(jiǎn)潔版的模糊實(shí)現(xiàn)”。 生成xls和xlsx有什么區(qū)別呢? XLS XLSX 只能打開(kāi)xls格式,無(wú)法直接打開(kāi)x

    2024年02月03日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包