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

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值

這篇具有很好參考價(jià)值的文章主要介紹了vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


?? 1. 前端導(dǎo)出選中表格數(shù)據(jù)到本地成xlsx文件

//---- 導(dǎo)出表格到本地xlsx文件 ----
const webDerive = () => {
    ElMessageBox.confirm("是否確認(rèn)導(dǎo)出選中數(shù)據(jù)?", "警告", {
        confirmButtonText: "確定",
        cancelButtonText: "取消",
        type: "warning",
    }).then(() => {
        
    })
}

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

1. 安裝依賴

npm run xlsx

2. 引入,import * as XLSX from “xlsx”;
3. 報(bào)錯(cuò)找不到模塊“xlsx”或其相應(yīng)的類型聲明

修改成大寫就好了import * as XLSX from 'XLSX',如果沒(méi)有報(bào)提示就直接用

4. 使用導(dǎo)出文件

//---- 導(dǎo)出表

格到本地xlsx文件 ----
const webDerive = () => {
    ElMessageBox.confirm("是否確認(rèn)導(dǎo)出選中數(shù)據(jù)?", "警告", {
        confirmButtonText: "確定",
        cancelButtonText: "取消",
        type: "warning",
    }).then(() => {
        //deleteDate  選中數(shù)據(jù)列表
        let tableData = [
            ['序號(hào)', '時(shí)間', '姓名', '地址', '收件地址']//導(dǎo)出表頭
        ] // 表格表頭
        deleteDate.forEach((item: any, index) => {
            console.log(item, item.name)
            let rowData = []
            //導(dǎo)出內(nèi)容的字段
            rowData = [
                index + 1,
                item.create_time,
                item.name,
                item.address
            ]
            tableData.push(rowData)
        })
        let workSheet = XLSX.utils.aoa_to_sheet(tableData);
        let bookNew = XLSX.utils.book_new();
        XLSX.utils.book_append_sheet(bookNew, workSheet, '作品名稱') // 工作簿名稱
        let name = '全部人員'+ '.xlsx'
        XLSX.writeFile(bookNew, name) // 保存的文件名
    })
}

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

?? 2. 通過(guò)接口獲取文件流下載xlsx文件

1. 直接用a標(biāo)簽下載

//html
 <a href="http://xxxxxxx:8082/file/down" class="download" id="aupload">a標(biāo)簽導(dǎo)出文件流 </a>
 
//css
.download {
    display: inline-block;
    padding: 2px 10px;
    color: #409eff;
    background-color: #ecf5ff;
    border: 1px solid #52a4f6a4 !important;
    border-radius: 4px;
    text-decoration: none;
    margin-left: 12px;
}
.download:hover {
    color: #fff;
    background-color: #409eff;
    border: 1px solid #52a4f6a4 !important;
}

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript
鼠標(biāo)移入樣式,點(diǎn)擊自動(dòng)下載
vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

2. 有特殊數(shù)據(jù)需要解析文件流方式

* 定義請(qǐng)求方式,axios

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

   responseType:'blob', //記得添加

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

* 下載文件流
    //引入請(qǐng)求方法
    import { download } from '../../api/upload'
    //在自己方法中法請(qǐng)求
    download().then(((res) => {
        const url = window.URL.createObjectURL(new Blob([res.data]));
        const link = document.createElement('a');
        let fname = '測(cè)試.pdf';
        link.href = url;
        link.setAttribute('download', fname);
        document.body.appendChild(link);
        link.click();
    }))

?? 3. 如何獲取proxy對(duì)象中的值,以及‘ 提示不能將類型“xxx”分配給類型“xxx2” ’ 解決方案

1. 獲取Proxy(Object)中數(shù)據(jù)方法

使用vue3.0時(shí),因?yàn)榈讓邮鞘褂胮roxy進(jìn)行代理的所以當(dāng)我們打印一些值得時(shí)候是proxy代理之后的是Proxy
對(duì)象,Proxy對(duì)象里邊的[[Target]]才是真實(shí)的對(duì)象。

  • 就比如選中表格單條數(shù)據(jù)時(shí)候,直接打印proxy里面的值可能會(huì)報(bào)undefined

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

  • * 解決方法一:直接給item:any設(shè)置類型

vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript
下邊兩種事網(wǎng)上給的答案,目前在我這個(gè)場(chǎng)景感覺(jué)沒(méi)用。相同場(chǎng)景就不用看下邊了。

  • * 解決方法二:JSON.parse(JSON.stringify( ))
 deleteDate.forEach((item) => {
   let obj = JSON.parse(JSON.stringify(item))
   console.log(obj, obj.name)
 })

打印結(jié)果:
vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

  • * 解決方法三:import { toRaw } from’@vue/reactivity’;

能打印出來(lái),但是會(huì)有警告“類型“never”上不存在屬性“name”。所以還得加any,家里之后就沒(méi)有警告了。
vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值,vue3+ts專欄,前端,vue.js,typescript

2. 提示不能將類型“xxx”分配給類型“xxx2”解決方案

不能將類型“xxx”分配給類型“xxx2”。ts(2322)
(property) Ref<string>.value: string。

as 是 TypeScript 中的類型斷言操作符。它的作用是告訴 TypeScript
編譯器某個(gè)值的確切類型,并強(qiáng)制將該值視為指定的類型。

類型斷言有兩種形式: 和 value as Type,在最新的 TypeScript 版本中,推薦使用 value as Type 的語(yǔ)法,因?yàn)樗c JSX 不會(huì)產(chǎn)生沖突。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-612339.html

1. 顯式類型轉(zhuǎn)換:當(dāng)你比 TypeScript 編譯器更了解某個(gè)變量的類型時(shí),可以使用 as 來(lái)強(qiáng)制將其轉(zhuǎn)換為你指定的類型,這樣 TypeScript 不會(huì)給出類型檢查錯(cuò)誤。
let myVariable: any = "Hello";
let myNumber: number = myVariable as number; // 顯式將myVariable轉(zhuǎn)換為number類型

日常學(xué)習(xí)筆記,有路過(guò)的發(fā)現(xiàn)錯(cuò)誤希望能指出!??

到了這里,關(guān)于vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • 詳解Vite創(chuàng)建Vue3項(xiàng)目+vue-router+ts+vite+element-plus

    詳解Vite創(chuàng)建Vue3項(xiàng)目+vue-router+ts+vite+element-plus

    前言 在之前的文章中寫過(guò)“Vue3+TS+ElementPlus的安裝和使用教程【詳細(xì)講解】”,但那篇文章寫的是創(chuàng)建vue3的項(xiàng)目沒(méi)有使用到Vite構(gòu)建工具進(jìn)行創(chuàng)建還是使用的常規(guī)webpacket構(gòu)建工具進(jìn)行創(chuàng)建的。提到Vite和webpacket的時(shí)候我們可以簡(jiǎn)單說(shuō)一下。 Vite 和 Webpack 都是現(xiàn)代化的前端構(gòu)建工

    2024年01月18日
    瀏覽(24)
  • 從0開始搭建一個(gè)vue3+vite+ts+pinia+element-plus的項(xiàng)目

    從0開始搭建一個(gè)vue3+vite+ts+pinia+element-plus的項(xiàng)目

    前言:vue3+ts+vite大家已經(jīng)都開始用了,最近也在學(xué)習(xí),基本上是零基礎(chǔ)開始ts的學(xué)習(xí),很多語(yǔ)法知識(shí)是邊寫邊查,沒(méi)有系統(tǒng)的學(xué)習(xí)ts。此處展示從零開始,搭建的一個(gè)框架,方便拿來(lái)即用! 其中框架選擇vue,語(yǔ)言選擇typeScript 項(xiàng)目啟動(dòng)成功以后如下所示: 為了方便日常工作中

    2024年02月06日
    瀏覽(28)
  • vue3+ts+element-plus 之使用node.js對(duì)接mysql進(jìn)行表格數(shù)據(jù)展示

    vue3+ts+element-plus 之使用node.js對(duì)接mysql進(jìn)行表格數(shù)據(jù)展示

    * 初始化node 查看node是否安裝 node -v 初始化命令 npm init 初始化配置解釋如下: 完成后會(huì)有一個(gè)package.json文件 * 安裝可能用到的依賴 根據(jù)需求安裝,我這里需要對(duì)接mysql,安裝依賴 ,我是一次性安裝完,后邊會(huì)直接使用,也可以邊安裝邊使用。如下 安裝成功如下: * 配置文件

    2024年02月15日
    瀏覽(54)
  • 超級(jí)詳細(xì) 最新 vite4+vue3+ts+element-plus+eslint-prettier 項(xiàng)目搭建流程

    系列文章目錄 【element-plus】 table表格每行圓角解決方案 element也通用 【Vue3+Vite+Ts+element-plus】使用tsx實(shí)現(xiàn)左側(cè)欄菜單無(wú)限層級(jí)封裝 超級(jí)詳細(xì)GitBook和GitLab集成步驟【linux環(huán)境】 1.1、項(xiàng)目創(chuàng)建 執(zhí)行以下代碼將vite將會(huì)自動(dòng)生成初始的 vite4+vue3+ts的項(xiàng)目模板,pnpm、npm、yarn 選擇一種執(zhí)

    2024年02月04日
    瀏覽(25)
  • Vue3 + TS + Element-Plus —— 項(xiàng)目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個(gè)UI不在是問(wèn)題

    Vue3 + TS + Element-Plus —— 項(xiàng)目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個(gè)UI不在是問(wèn)題

    前期回顧 純前端 —— 200行JS代碼、實(shí)現(xiàn)導(dǎo)出Excel、支持DIY樣式,縱橫合并-CSDN博客 https://blog.csdn.net/m0_57904695/article/details/135537511?spm=1001.2014.3001.5501 目錄 一、?????newTable.vue 封裝Table 二、?? newForm.vue 封裝搜索表單? 三、?? TS類型?srctypesglobal.d.ts 四、?? 頁(yè)面使用功能

    2024年01月24日
    瀏覽(25)
  • vue3使用element-plus

    vue3使用element-plus

    element-ui 是配合 vue2 使用,element-plus 是配置 vue3 使用的 1. 包管理器的方式 如果是使用?webpack 或者 vite 打包工具新建的項(xiàng)目 2. 瀏覽器直接導(dǎo)入 直接通過(guò)瀏覽器的 HTML 標(biāo)簽導(dǎo)入 Element Plus,然后就可以使用全局變量 ElementPlus 1. 導(dǎo)入全部組件且注冊(cè)所有的圖標(biāo) 聲明使用 ElementPl

    2024年02月08日
    瀏覽(35)
  • Vue3導(dǎo)入Element-plus方法

    Vue3導(dǎo)入Element-plus方法

    先引入依賴 main.js中要引入兩個(gè)依賴 然后 這個(gè)東西 我們最好還是掛載vue上 所以 還是 然后 我們可以在組件上試一下用一個(gè)ElementUi的表格組件 參考代碼如下 運(yùn)行結(jié)果如下 也是沒(méi)有任何問(wèn)題

    2024年02月06日
    瀏覽(97)
  • vue3 element-plus 實(shí)現(xiàn)圖片預(yù)覽

    vue3 element-plus 實(shí)現(xiàn)圖片預(yù)覽

    element-plus下有這么一個(gè)組件 el-image-viewer /,但是這個(gè)組件是沒(méi)寫在文檔上面的,像普通組件一樣使用即可 可以通過(guò)點(diǎn)擊按鈕實(shí)現(xiàn)圖片預(yù)覽,而非el-image組件只能通過(guò)點(diǎn)擊圖片實(shí)現(xiàn)預(yù)覽 2.1封裝組件 2.3組件使用 在需要使用的地方引入,然后使用即可,這不是重點(diǎn),每個(gè)人使用的

    2024年02月15日
    瀏覽(28)
  • vue3+element-plus上傳文件,預(yù)覽文件

    vue3+element-plus上傳文件,預(yù)覽文件

    vue3+ts+element-plus上傳文件,預(yù)覽文件 場(chǎng)景:使用element-plus的el-upload標(biāo)簽,手動(dòng)上傳文件,可預(yù)覽docx,xlsx,pdf,jpg,jpeg,png(本地資源以及網(wǎng)絡(luò)資源)。 1、使用el-upload標(biāo)簽 檢查上傳文件的文件格式與大小 上傳的附件信息在fileList中,組裝接口所需數(shù)據(jù)進(jìn)行上傳 使用docx-preview插件預(yù)覽

    2024年02月11日
    瀏覽(37)
  • Vue3 封裝 element-plus 圖標(biāo)選擇器

    Vue3 封裝 element-plus 圖標(biāo)選擇器

    效果一: 效果二: ? 效果一的這個(gè)是把全部的icon圖標(biāo)都讓它顯示出來(lái),讓我們自己選擇說(shuō)選圖標(biāo) 2.1. 全局注冊(cè) icon 組件 2.2. 組件實(shí)現(xiàn)? 2.3. 使用? 效果二的這個(gè)是渲染后端返回的icon圖標(biāo) 3.1. 全局注冊(cè) icon 組件 3.2. 組件實(shí)現(xiàn)? 3.3. 使用?

    2024年02月07日
    瀏覽(240)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包