狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【JavaScript】前端純js如何實(shí)現(xiàn)excel帶樣式在線預(yù)覽?

admin
2023年5月26日 17:14 本文熱度 2662

excel的預(yù)覽庫有不少,也都很強(qiáng)大,但是能很簡單實(shí)現(xiàn)【帶樣式預(yù)覽】的很少,我是通過借助exceljs和x-data-spreadsheet兩個(gè)庫,來實(shí)現(xiàn)了excel帶樣式預(yù)覽的vue組件@vue-office/excel,本文先介紹用法,然后再介紹實(shí)現(xiàn)原理。

免費(fèi)開源下載:https://github.com/501351981/vue-office

在線效果預(yù)覽:https://501351981.github.io/vue-office/examples/dist/#/docx

使用用法

安裝@vue-office/excel

npm install @vue-office/excel vue-demi

使用方法

只需傳遞要預(yù)覽的文件src地址,即可完成預(yù)覽,可以說是目前最簡單的預(yù)覽方式了。

src支持三種格式:

  • string: Excel文件的網(wǎng)絡(luò)地址,cdn地址

  • ArrayBuffer:以ArrayBuffer格式讀取Excel文件的內(nèi)容

  • Blob:以Blob格式讀取Excel文件的內(nèi)容

<template>
  <vue-office-excel :src="excel" @rendered="rendered"/>
</template>
<script>
//引入VueOfficeExcel組件
import VueOfficeExcel from '@vue-office/excel'
//引入相關(guān)樣式
import '@vue-office/excel/lib/index.css'
export default {
  components:{
    VueOfficeExcel
  },
  data(){
    return {
      excel: 'http://static.shanhuxueyuan.com/demo/excel.xlsx'//設(shè)置文檔地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染完成")
    }
  }
}
</script>

看看預(yù)覽效果

首先看下excel內(nèi)容:

excel原始文件


再看看預(yù)覽后的:

@vue-office/excel預(yù)覽效果


基本上還算一致,但是還有一些細(xì)節(jié)需要處理,整體上算是還原了excel的樣式。

實(shí)現(xiàn)原理

需要借助兩個(gè)excel相關(guān)庫

exceljs:用來讀取excel文件,讀取的文件中包含excel文件的樣式,但是這個(gè)樣式不能直接渲染到瀏覽器中。

x-data-spreadsheet:excel在線編輯軟件,支持帶樣式預(yù)覽,但是必須滿足自己特有的數(shù)據(jù)格式。

通過將exceljs獲取的workbook對象轉(zhuǎn)為x-data-spreadsheet所需的數(shù)據(jù)格式,就可以借助x-data-spreadsheet的預(yù)覽功能,實(shí)現(xiàn)excel帶樣式預(yù)覽。

@vue-office/excel實(shí)現(xiàn)原理



通過exceljs讀取的數(shù)據(jù)格式大致如下,一個(gè)workbook包含多個(gè)sheet,一個(gè)sheet包含多個(gè)行row,一個(gè)rou包含多個(gè)單元格cell,單元格cell中包含excel的樣式:


但是這里的樣式是不能直接用于展示的,比如這個(gè)fgColor,并不是給出一個(gè)色值,只是給出了theme和tint,我是通過實(shí)驗(yàn)猜測出這兩個(gè)值的含義,一個(gè)是excel的顏色主題,如下圖,tint是加深dark或者減淡light。


然后通過將這些樣式轉(zhuǎn)換成具體色值,實(shí)現(xiàn)預(yù)覽,具體比較繁瑣,知道大致思路,然后看下x-data-spreadsheet所需格式即可知道要如何進(jìn)行轉(zhuǎn)換。


目前支持以下格式:

  • 內(nèi)容:字體font、顏色Color、大小fontSize、加粗等

  • 邊框:邊框粗細(xì)和顏色

  • 填充色

  • 對齊方式:左右、上下

  • 合并單元格

整個(gè)實(shí)現(xiàn)過程技術(shù)上并不難,但是很繁瑣,還缺少資料,需要自己去試驗(yàn)猜測,還需要后續(xù)抽時(shí)間繼續(xù)完善,感興趣的可以看看我的源碼。

最大的感受就是做一個(gè)好的開源作品,真不容易,希望大家支持一下~~



該文章在 2023/5/26 17:23:59 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved