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

前端導(dǎo)出表格 修改樣式(xlsx-style)用法

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

一. 應(yīng)用機(jī)制

????????xlsx-style 修改樣式的機(jī)制? 就是選中哪一行,那一列或者哪一個(gè)? 然后去修改? 比如表格最左上角的一個(gè)格子 坐標(biāo)是(0, 0)下標(biāo)? 也可以叫做?A1 選中之后? 可以修改其樣式?

二. 實(shí)戰(zhàn)講解

1. 下載依賴

npm install xlsx-style -S

? 首先下載依賴到項(xiàng)目

2. 引入到項(xiàng)目

import * as XLSX from 'xlsx'

3. 創(chuàng)建導(dǎo)出表格

? ? ? ? 為什么說(shuō)是創(chuàng)建導(dǎo)出表格而不是表格呢,是因?yàn)閷?dǎo)出表格跟原本頁(yè)面展示的表格可能不一樣,打比方我導(dǎo)出頁(yè)面表格比普通的表格下方多一行注釋 等等,如果導(dǎo)出表格跟頁(yè)面展示的一樣,則可以用改表格,否則創(chuàng)建一個(gè)新表格 v-show="false" 也就是隱藏掉,用來(lái)導(dǎo)出, 上代碼

<el-table :data="tableDatas" border style="margin-left: 5%;width: 84%;" id="report-table"
  :header-cell-style="{ 'text-align': 'center' }" height="70vh" @row-dblclick="rowDblclick"
  :cell-style="{ 'text-align': 'center' }" v-show="false">
  <el-table-column :label="time + req.source + '檢查問(wèn)題統(tǒng)計(jì)報(bào)表'">
    <el-table-column label="序號(hào)" align="center" width="100">
      <template slot-scope="scope">
        <span v-if="scope.row.index"> {{ scope.row.index }} </span>
        <span v-else>{{ scope.$index + 1 }}</span>
      </template>
    </el-table-column>
    <el-table-column v-if="show('zdlb')" prop="caseTypeDetail" label="問(wèn)題類別" width="300">
    </el-table-column>
    <el-table-column v-if="show('zdqyS')" prop="syncRoad" label="重點(diǎn)區(qū)域" width="300">
      <template slot-scope="scope">
        {{ scope.row.syncRoad }}
      </template>
    </el-table-column>
    <el-table-column v-if="show('zdqyC')" prop="community" label="重點(diǎn)區(qū)域" width="300">
      <template slot-scope="scope">
        <span v-if="scope.row.community == '合并'"> {{ scope.row.community }} </span>
        <selectTag v-else :type="communityData" :value="scope.row.community"></selectTag>
      </template>
    </el-table-column>
    <el-table-column prop="total" label="總數(shù)" width="100">
    </el-table-column>
    <el-table-column label="按時(shí)整改" width="200">
      <template slot-scope="{}" slot="header">
        <span>按時(shí)整改</span>
        <el-tooltip class="item" effect="dark" placement="top">
          <i class="el-icon-question" style="vertical-align: middle;color:red"></i>
          <div slot="content">
            <p>Tips:在規(guī)定時(shí)限內(nèi)完成整改的案件</p>
          </div>
        </el-tooltip>
      </template>
      <el-table-column prop="ontimeNum" label="數(shù)量" width="100">
      </el-table-column>
      <el-table-column prop="ontimeScore" label="扣分" width="100">
      </el-table-column>
    </el-table-column>
    <el-table-column label="限時(shí)整改" width="200">
      <template slot-scope="{}" slot="header">
        <span>限時(shí)整改</span>
        <el-tooltip class="item" effect="dark" placement="top">
          <i class="el-icon-question" style="vertical-align: middle;color:red"></i>
          <div slot="content">
            <p>Tips:未在規(guī)定時(shí)限內(nèi)完成整改的案件</p>
          </div>
        </el-tooltip>
      </template>
      <el-table-column prop="timelimitNum" label="數(shù)量" width="100">
      </el-table-column>
      <el-table-column prop="timelimitScore" label="扣分" width="100">
      </el-table-column>
    </el-table-column>
    <el-table-column label="超期整改" width="200">
      <template slot-scope="{}" slot="header">
        <span>超期整改</span>
        <el-tooltip class="item" effect="dark" placement="top">
          <i class="el-icon-question" style="vertical-align: middle;color: red"></i>
          <div slot="content">
            <p>Tips:超過(guò)規(guī)定時(shí)限內(nèi)整改的案件</p>
          </div>
        </el-tooltip>
      </template>
      <el-table-column prop="overdueNum" label="數(shù)量" width="100">
      </el-table-column>
      <el-table-column prop="overdueScore" label="扣分" width="100">
      </el-table-column>
    </el-table-column>
    <el-table-column prop="accumulatedScore" label="累計(jì)扣分" width="100">
      <template slot-scope="scope">
        {{ scope.row.accumulatedScore ? parseFloat(scope.row.accumulatedScore).toFixed(2) : "" }}
      </template>
    </el-table-column>
    <el-table-column label="備注" width="100">
    </el-table-column>
  </el-table-column>
</el-table>

上面是源代碼 可能過(guò)于復(fù)雜 我給大家上精簡(jiǎn)版

<el-table :data="tableDatas" border id="report-table" v-show="false">
  <el-table-column :label="time + req.source + '檢查問(wèn)題統(tǒng)計(jì)報(bào)表'">
    <el-table-column label="序號(hào)" align="center" width="100">
      <template slot-scope="scope">
        <span v-if="scope.row.index"> {{ scope.row.index }} </span>
        <span v-else>{{ scope.$index + 1 }}</span>
      </template>
    </el-table-column>
    <el-table-column label="備注" width="100">
    </el-table-column>
  </el-table-column>
</el-table>

重要的是:綁定在 el-table?這個(gè)標(biāo)簽里的 id?

4. 導(dǎo)出事件

事件內(nèi) 我們一行一行細(xì)講? 首先? 獲取當(dāng)前導(dǎo)出表格的數(shù)據(jù)? 這個(gè)時(shí)候就要用上之前導(dǎo)出表格上方綁定的 id 了? 我們聲明一個(gè) wb 去接收 表格內(nèi)數(shù)據(jù)轉(zhuǎn)化的二進(jìn)制?blob

var wb = XLSX.utils.table_to_book(document.querySelector("#report-table"));

我們可以打印一下 wb 看看里面有什么東西

xlsxstyle,經(jīng)驗(yàn)記載,前端,css,html

?而我們所需要修改的表格則在 wb.Sheets 下, 我們?cè)诖蛴∫幌?wb.Sheets

xlsxstyle,經(jīng)驗(yàn)記載,前端,css,html

xlsxstyle,經(jīng)驗(yàn)記載,前端,css,html

?如果你導(dǎo)出表格只有一張的話?wb.Sheets 下就只有 Sheet1 一個(gè)參數(shù) 如果有其他表的話 則有:Sheet2,?Sheet3 ... 以此類推?

xlsxstyle,經(jīng)驗(yàn)記載,前端,css,html

?Sheet1?下方參數(shù)

參數(shù) 表達(dá)含義
!cols 代表每一列,數(shù)據(jù)格式為數(shù)組,比如 [{wpx:100}, {wpx: 100}], 則表示為前兩列的寬為 100px
!merge 合并單元格,數(shù)據(jù)格式為數(shù)組?[{s:{r:0,c:0},e:{r:0,c:6}}], s(start)為開(kāi)始單元格坐標(biāo),e(end)為結(jié)束單元格坐標(biāo),r (row)行,c(col)列,這里的例子代表合并第0行第0到 第0行第6個(gè)單元格
A1 A1 代表單元格第一行第一個(gè) 往右走則是 B1, C1...這個(gè)可以參照導(dǎo)出表格里的 A列第一行 每個(gè)單元格都有其格式 {t:"s", s: {}, v:""? }, t(type)為類型 其參數(shù)有:n(number數(shù)字類型),s(string字符串類型);s(style)里面參數(shù)為樣式,你想要修改單元格的內(nèi)部樣式,v(value)是單元格內(nèi)容

知道參數(shù)? 那么我們就繼續(xù)上代碼了

比方:我要修改前24列的單元格寬

// 表Sheet1
wb.Sheets.Sheet1["!cols"] = [];
// 動(dòng)態(tài)添加前24列  寬為140px
for (let a = 0; a < 24; a++) {
  wb.Sheets.Sheet1["!cols"].push({
    wpx: 140,
  })
}

表格添加邊框并修改字體

let arr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
// 循環(huán)渲染表格樣式
arr.forEach((item) => {
    for (let i = 1; i < 7 + this.tableData.length; i++) {
        let str = (item + i).toString();
        if (wb.Sheets.Sheet1[str]) {
            wb.Sheets.Sheet1[str].s = { 
              font: {
                name: "宋體",
                sz: 14,
                // bold: true,
                // color: { rgb: "FC5531" }
              },
              border: {
                top: {
                  style: 'thin',
                  color: {
                    auto: 1
                  }
                },
                left: {
                    style: 'thin',
                  color: {
                    auto: 1
                  }
                },
                right: {
                  style: 'thin',
                  color: {
                    auto: 1
                  }
                },
                bottom: {
                  style: 'thin',
                  color: {
                    auto: 1
                  }
                }
              },
              alignment: {
                // 居中
                horizontal: "center",
                vertical: "center",
                indent: 0,
              },
            }
        }
    })
})

????????先循環(huán)?arr 再循環(huán) this.tableData.length 是因?yàn)? 循環(huán)相加之后 拼湊成 A1 A2 B1 B2 ... 這樣類型的?wb.Sheets.Sheet1[str].s 則是修改它的樣式

xlsxstyle,經(jīng)驗(yàn)記載,前端,css,html

?手動(dòng)合并單元格(手動(dòng)合并可能會(huì)導(dǎo)致表格報(bào)問(wèn)題)

// 手動(dòng)合并  最后三行注釋
wb.Sheets.Sheet1["!merges"].push({
  e: {
    r: parseInt(_tableData.length + 2), c: 0
  },
  s: {
    r: parseInt(_tableData.length + 4), c: 5
  }
})

xlsxstyle,經(jīng)驗(yàn)記載,前端,css,html

?這個(gè)點(diǎn) 即可 還得研究一下 怎么解決

結(jié)束? 打完 手工

? ? ? ??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-647129.html

到了這里,關(guān)于前端導(dǎo)出表格 修改樣式(xlsx-style)用法的文章就介紹完了。如果您還想了解更多內(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)文章

  • 前端使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式

    前端使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式

    安裝 導(dǎo)出 excel 較常見(jiàn)的 js 庫(kù)是之一是 xlsx, xlsx 算是基礎(chǔ)版本,不能對(duì)單元格進(jìn)行樣式(對(duì)齊方式、文字顏色、背景顏色等)的修飾,如果需要修飾單元格,可使用 xlsx-js-style 引入 需要導(dǎo)出的數(shù)據(jù)源 將數(shù)據(jù)源轉(zhuǎn)成需要的二維數(shù)組 定義 Excel 表頭 將定義好的表頭添加到 body

    2023年04月08日
    瀏覽(23)
  • vue導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬(使用xlsx庫(kù)和xlsx-style庫(kù))

    xlsx 是由 SheetJS 開(kāi)發(fā)的一個(gè)處理excel文件的npm庫(kù) 適用于前端開(kāi)發(fā)者實(shí)現(xiàn)導(dǎo)入導(dǎo)出excel文件的經(jīng)典需求 為了區(qū)別于xlsx文件,突出其應(yīng)用語(yǔ)言,該庫(kù)通常又被稱為 js-xlsx 需要以下步驟: 安裝 xlsx 庫(kù) 你可以使用 npm 包管理器安裝 xlsx 庫(kù),也可以將 xlsx 下載到本地,然后在 HTML 文件中

    2024年02月16日
    瀏覽(20)
  • 前端基于XLSX實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出到Excel表格,以及提示“文件已經(jīng)被損壞,無(wú)法打開(kāi)”的解決方法

    前端基于XLSX實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出到Excel表格,以及提示“文件已經(jīng)被損壞,無(wú)法打開(kāi)”的解決方法

    一、vue實(shí)現(xiàn)導(dǎo)出excel 1、前端實(shí)現(xiàn) xlsx是一個(gè)用于讀取、解析和寫(xiě)入Excel文件的JavaScript庫(kù)。它提供了一系列的API來(lái)處理Excel文件。使用該庫(kù),你可以將數(shù)據(jù)轉(zhuǎn)換為Excel文件并下載到本地。這種方法適用于在前端直接生成Excel文件的場(chǎng)景。 更多介紹可參見(jiàn)官網(wǎng) 1、安裝xlsx依賴 2、引

    2024年01月23日
    瀏覽(37)
  • 前端vue導(dǎo)出excel(標(biāo)題加粗+表頭自定義樣式+表格邊框+單元格自定義樣式)

    前端vue導(dǎo)出excel(標(biāo)題加粗+表頭自定義樣式+表格邊框+單元格自定義樣式)

    接近過(guò)年,被一大堆excel報(bào)表煩死的我,遇到要求前端導(dǎo)出excel的后端,差點(diǎn)猝死的我拼命學(xué)習(xí)中,整理出這篇文章,希望看到這篇文章的你有所收獲,也希望能收到大佬們的指點(diǎn) 之前用c#,.net弄過(guò)導(dǎo)出word,excel,可以點(diǎn)擊查看.NET使用Aspose控件生成Word(可構(gòu)建自定義表格)、

    2024年04月15日
    瀏覽(31)
  • uniapp - 微信小程序JSON數(shù)據(jù)導(dǎo)出表格(XLSX)

    uniapp-微信小程序?qū)С霰砀瘢╔LSX) 這篇文章苦于,后端沒(méi)有提供下載接口,前端的小伙伴自己要處理Json數(shù)據(jù)的情況下 用到了,由Sheet.js出品的 js-xlsx 是一款非常方便的只需要純JS即可讀取和導(dǎo)出excel的工具庫(kù),用于多種電子表格格式的解析器和編寫(xiě)器。 這里只說(shuō)明xlsx導(dǎo)出 其

    2024年02月16日
    瀏覽(17)
  • Vue xlsx插件前端導(dǎo)出

    一、安裝 xlsx 二、具體使用整體代碼 如果數(shù)據(jù)格式是這樣就用下面的,直接把數(shù)據(jù)傳到 XLSX.utils.json_to_sheet

    2024年02月06日
    瀏覽(22)
  • 前端JS實(shí)現(xiàn)導(dǎo)出xlsx文件

    需求背景: 需要導(dǎo)出表格的數(shù)據(jù),由于后端不提供導(dǎo)出接口,所以由前端通過(guò)JSON數(shù)據(jù)導(dǎo)出實(shí)現(xiàn)。 使用的插件: js-export-excel 安裝: npm install js-export-excel 使用: 親測(cè)有用,只要前端能拿到的是表格全量數(shù)據(jù),就能直接導(dǎo)出表格所有數(shù)據(jù)。但如果是后端分頁(yè)查詢的表格,前端

    2024年02月04日
    瀏覽(25)
  • 記錄--前端如何優(yōu)雅導(dǎo)出多表頭xlsx

    記錄--前端如何優(yōu)雅導(dǎo)出多表頭xlsx

    xlsx導(dǎo)出是比較前后端開(kāi)發(fā)過(guò)程中都比較常見(jiàn)的一個(gè)功能。但傳統(tǒng)的二維表格可能很難能滿足我們對(duì)業(yè)務(wù)的需求,因?yàn)楫?dāng)數(shù)據(jù)的維度和層次比較多時(shí),二維表格很難以清晰和壓縮的方式展現(xiàn)所有的信息,所以我們也就經(jīng)常能碰到多級(jí)表頭開(kāi)發(fā)了。 每當(dāng)我們新使用一個(gè)插件的時(shí)候

    2024年02月09日
    瀏覽(19)
  • xlsx庫(kù)實(shí)現(xiàn)純前端導(dǎo)入導(dǎo)出Excel

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

    最近做了前端導(dǎo)入、導(dǎo)出 Excel 的需求,用到了 js-xlsx 這個(gè)庫(kù),該庫(kù)文檔提供的用例很少,并不是很友好。本文總結(jié)一下我是如何實(shí)現(xiàn)需求的。 提供一個(gè) Excel 文件,將里面的內(nèi)容轉(zhuǎn)成 JSON 導(dǎo)入數(shù)據(jù) 提供一個(gè) JSON 文件,生成 Excel 文件并導(dǎo)出 導(dǎo)入與導(dǎo)出既可以前端做,也可以后

    2023年04月08日
    瀏覽(24)
  • 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),想用的話,直接復(fù)制粘貼即可! 模版下載圖片 導(dǎo)出圖片: 好了,下面我

    2024年02月13日
    瀏覽(95)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包