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

前端結(jié)合xlsx.js+xlsx-style.js源碼實(shí)現(xiàn)自定義excel文件導(dǎo)出

這篇具有很好參考價(jià)值的文章主要介紹了前端結(jié)合xlsx.js+xlsx-style.js源碼實(shí)現(xiàn)自定義excel文件導(dǎo)出。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

??????js-xlsx是一款非常方便的只需要純JS即可讀取和導(dǎo)出excel的工具庫(kù),功能強(qiáng)大,支持格式眾多,支持xls、xlsx、ods(一種OpenOffice專有表格文件格式)等十幾種格式。本文全部都是以xlsx格式為例。

創(chuàng)建excel流程

創(chuàng)建一個(gè)excel會(huì)經(jīng)歷以下過程:

  1. 創(chuàng)建一個(gè)工作薄
  2. 創(chuàng)建一個(gè)sheet
  3. 創(chuàng)建表格行列等

所以我們用js-xlsx創(chuàng)建excel同樣的道理:

  1. 創(chuàng)建工作?。╓orkBook)
  2. 創(chuàng)建sheet(WorkBook.Sheet)
  3. 創(chuàng)建表格行列(WorkBook.sheet[])

快速上手

安裝:

npm i xlsx xlsx-style -S

解決運(yùn)行時(shí)插件報(bào)錯(cuò):
xlsx-style.js報(bào)錯(cuò)Can‘t resolve ‘./cptable‘ in ‘xxx\node_modules_xlsx

引入:

import * as XLSX from 'xlsx'
import * as XLSX2 from 'xlsx-style'

導(dǎo)出:

const workbook = XLSX.utils.book_new() // 創(chuàng)建工作簿
const worksheet = XLSX.utils.json_to_sheet(data) // json結(jié)構(gòu)轉(zhuǎn)sheet頁
const worksheet = XLSX.utils.table_to_sheet(data) // dom結(jié)構(gòu)轉(zhuǎn)sheet頁
const worksheet = XLSX.utils.aoa_to_sheet(data) // 數(shù)組轉(zhuǎn)sheet頁
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1') // 插入sheet頁命名為sheet1
XLSX.writeFile(workbook, 'new.xlsx') // 輸入文件

指定范圍替換值/樣式

` 提示:默認(rèn)導(dǎo)出表格文字樣式是cablili,大小12,居左,字符串格式

自定義替換函數(shù):

  • range:替換范圍
  • custom:樣式或者默認(rèn)值

示例:

custom = [
    {
        range: { start: 'A1', end: 'B2' },
        cellStyles: {
            border: {
              top: { style: 'thin', color: { rgb: '000000' } },
              left: { style: 'thin', color: { rgb: '000000' } },
              bottom: { style: 'thin', color: { rgb: '000000' } },
              right: { style: 'thin', color: { rgb: '000000' } }
            },
            font: {
                name: '宋體',
                sz: 11,
                color: '000000',
                bold: false,
                underline: false,
                italic: false
            },
            alignment: {
                vertical: 'center',
                horizontal: 'center',
                wrapText: false
            },
            fill: {
                bgColor: 'ffffff'
            }
        },
        newValue: ''
    }
]

實(shí)際邏輯:

custom.forEach(item => {
    const range = {
        s: XLSX.utils.decode_cell(item.range.start), // 將輸入的{start: 'A1'} 解析
        e: XLSX.utils.decode_cell(item.range.end) // 將輸入的{end: 'F10'} 解析
    }
    for (let row = range.s.r; row <= range.e.r; row++) {
        for (let col = range.s.c; col <= range.e.c; col++) {
            const cellRef = XLSX.utils.encode_cell({ c: col, r: row })
            if (item.newValue) { // 批量替換單元格的值
                worksheet[cellRef] = { t: 's', v: item.newValue, z: XLSX.utils.encode_cell({ c: col, r: row }) }
                break
            }
            if (item.cellStyles && worksheet[cellRef]) worksheet[cellRef].s = item.cellStyles // 批量替換單元格的樣式
        }
    }
})

由于xlsx.js不能提供樣式的插入,因此需要使用xlsx-style.js的write方法;
由源碼可得:
xlsx.js庫(kù),javascript,前端,excel
xlsx.js庫(kù),javascript,前端,excel
繼續(xù)往下看:
在write_zip_type這個(gè)方法中new了一個(gè)StyleBuilder對(duì)象;
xlsx.js庫(kù),javascript,前端,excel
在StyleBuilder對(duì)象內(nèi)部完成了給表格增加樣式的操作;
xlsx.js庫(kù),javascript,前端,excel

小結(jié)

???????以上文章提供了關(guān)于使用js-xlsx庫(kù)創(chuàng)建和導(dǎo)出Excel文件的詳細(xì)指南。文章首先介紹了js-xlsx的基本概念和用途,然后提供了代碼示例和解釋,幫助開發(fā)人員了解如何使用該庫(kù)進(jìn)行Excel文件的操作。

???????在文章中,我們學(xué)習(xí)了如何使用js-xlsx來創(chuàng)建工作簿、添加工作表以及設(shè)置單元格的值和樣式。我們還了解了如何使用自定義替換函數(shù)和樣式構(gòu)建器來實(shí)現(xiàn)批量替換值和樣式的功能。

???????總的來說,這篇文章是一個(gè)很好的參考資料,對(duì)于想要使用js-xlsx庫(kù)的開發(fā)人員來說尤其有用。它提供了必要的指導(dǎo),使我們能夠輕松地處理Excel文件,并根據(jù)需要進(jìn)行自定義操作。文章來源地址http://www.zghlxwxcb.cn/news/detail-837939.html

到了這里,關(guān)于前端結(jié)合xlsx.js+xlsx-style.js源碼實(shí)現(xiàn)自定義excel文件導(dǎo)出的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 純前端導(dǎo)出,設(shè)置導(dǎo)出xlsx文件樣式xlsx-js-style

    設(shè)置導(dǎo)出的表格樣式,xlsx-js-style!真的絕絕子! 1.下載xlsx-js-style依賴 2.在main.js中掛載到vue原型上,方便使用 ?3.頁面具體寫法 參考:前端根據(jù)后端返回?cái)?shù)據(jù)導(dǎo)出指定樣式的表格(xlsx-js-style)_前端excel導(dǎo)出指定格式-CSDN博客

    2024年01月17日
    瀏覽(23)
  • 前端使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式

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

    安裝 導(dǎo)出 excel 較常見的 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日
    瀏覽(22)
  • 前端JS實(shí)現(xiàn)導(dǎo)出xlsx文件

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

    2024年02月04日
    瀏覽(25)
  • 前端使用 xlsx.js 工具讀取 excel 遇到時(shí)間日期少 43 秒的解決辦法

    在使用 xlsx 讀取 excel 的時(shí)間格式的數(shù)據(jù)時(shí),如 ‘2023-11-30’,‘2023/11/30’ ,默認(rèn)會(huì)讀取一串?dāng)?shù)字字符串,如:‘45260’,此時(shí)需要在 read 的時(shí)候傳入一個(gè)配置項(xiàng): 此時(shí)拿到的是標(biāo)準(zhǔn)的時(shí)間格式 :‘Wed Nov 29 2023 23:59:17 GMT+0800(中國(guó)標(biāo)準(zhǔn)時(shí)間)’ ,這個(gè)時(shí)間格式是帶時(shí)區(qū)的,有沒

    2024年02月04日
    瀏覽(24)
  • 免費(fèi)下載xlsx.full.min.js包,并放入前端代碼里,在html+vue中引用

    訪問 xlsx.js 的 GitHub 頁面:https://github.com/SheetJS/sheetjs 在 GitHub 頁面中,找到 \\\"Code\\\" 按鈕,然后點(diǎn)擊它,在下拉菜單中選擇 \\\"Download ZIP\\\",以下載 xlsx.js 的最新版本。 解壓下載的 ZIP 文件。 在解壓后的文件夾中,你會(huì)找到 xlsx.full.min.js 文件。將這個(gè)文件復(fù)制到你的前端項(xiàng)目中,通

    2024年02月02日
    瀏覽(63)
  • 前端實(shí)現(xiàn)(excel)xlsx文件預(yù)覽

    前端實(shí)現(xiàn)(excel)xlsx文件預(yù)覽

    使用的框架: React 要使用的庫(kù): exceljs、handsontable 接到一個(gè)任務(wù),是要前端實(shí)現(xiàn)文件預(yù)覽效果,百度了一圈,發(fā)現(xiàn)也沒有什么好的方法可以完美的將表格渲染出來。在前端中有 sheetjs 和 exceljs 可以對(duì)xlsx文件進(jìn)行解析,本來一開始我用的是 sheetjs ,但是在樣式獲取上遇到了麻煩,

    2024年02月06日
    瀏覽(24)
  • 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日
    瀏覽(23)
  • 純前端實(shí)現(xiàn)文件預(yù)覽(pdf、docx 、xlsx)詳細(xì)過程

    我詳細(xì)這個(gè)當(dāng)這個(gè)需求來的時(shí)候,有很大一部分人跟我的想法是一樣的純前端如何去實(shí)現(xiàn)多文件預(yù)覽。確實(shí)這個(gè)功能很讓人頭疼,雖然市面上也有很多成型的插件,但是極少數(shù)能滿足不同文件的預(yù)覽,要么就是用第三方的鏈接去預(yù)覽。這種雖然是最簡(jiǎn)單的方式。但是好多公司

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

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

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

    2024年02月13日
    瀏覽(95)
  • 基于Js和Java實(shí)現(xiàn)xlsx\xls文檔的導(dǎo)入和下載

    基于Js和Java實(shí)現(xiàn)xlsx\xls文檔的導(dǎo)入和下載

    ?實(shí)現(xiàn)xlsxxls文檔的導(dǎo)入、導(dǎo)出 ?導(dǎo)入效果: ?導(dǎo)出效果: 導(dǎo)出效果圖 1.2.1、實(shí)體類 1.2.2、導(dǎo)入實(shí)體類 1.2.3、控制層 1.2.4、服務(wù)層 1.2.5、服務(wù)實(shí)現(xiàn)層 1、表格樣式: 基本情況 單位:測(cè)試單位 2024年 第一列數(shù)據(jù) 第二列數(shù)據(jù) 第三列數(shù)據(jù) 第四列數(shù)據(jù) 第五列數(shù)據(jù) 實(shí)現(xiàn)代碼 2、表格

    2024年03月20日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包