中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

有什么專門搜試卷做的網(wǎng)站app推廣平臺排行榜

有什么專門搜試卷做的網(wǎng)站,app推廣平臺排行榜,國內(nèi)最新十大新聞,廣州網(wǎng)站優(yōu)化推廣公司當(dāng)畫面有自定義的表格或者樣式過于復(fù)雜的表格時,導(dǎo)出功能可以由前端實現(xiàn) 1. 使用的插件 : sheet.js-xlsx 文檔地址:https://docs.sheetjs.com/ 中文地址:https://geekdaxue.co/read/SheetJS-docs-zh/README.md xlsx-style&#…

當(dāng)畫面有自定義的表格或者樣式過于復(fù)雜的表格時,導(dǎo)出功能可以由前端實現(xiàn)

1. 使用的插件 : sheet.js-xlsx

文檔地址:https://docs.sheetjs.com/
中文地址:https://geekdaxue.co/read/SheetJS-docs-zh/README.md
xlsx-style:https://www.npmjs.com/package/xlsx-style
在這里插入圖片描述

2. 安裝引用

安裝插件-vue3

yarn add xlsx 
yarn add xlsx-style-vite (有樣式需求才需要安裝;背景色等)

引用插件

import * as XLSX from 'xlsx';
import * as XLSX_STYLE from 'xlsx-style-vite'

3. 組件表格的導(dǎo)出(無樣式)

以ant design vue 表格為例,只導(dǎo)出表格內(nèi)容

<a-table :columns="columns" :dataSource="detaildata" :scroll="{ x: 'max-content',y:700 }" ></table?>
<a-button @click="exportData">導(dǎo)出</a-button><script>//數(shù)據(jù)處理為數(shù)組const transData=(columns, tableList)=> {const obj = columns.reduce((acc, cur) => {if (!acc.titles && !acc.keys) {acc.titles = [];acc.keys = [];}acc.titles.push(cur.title);acc.keys.push(cur.dataIndex);return acc;}, {});const tableBody = tableList.map((item,i) => {return obj.keys.map((key,index) => item[key]);});return [ obj.titles, ...tableBody ];}const exportData=()=>{const tableData = transData(columns.value,detaildata.value);// 將數(shù)據(jù)數(shù)組轉(zhuǎn)換為工作表const ws = XLSX.utils.aoa_to_sheet(tableData);// 創(chuàng)建 workbookconst wb = XLSX.utils.book_new();ws['!ref'] = `A1:AI${tableData.length}`;//設(shè)置列寬ws["!cols"] = [{wpx: 120}, {wpx: 100},{wpx: 110},{wpx: 110},];//合并單元格ws['!merges'] = [{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } }]// 將 工作表 添加到 workbookXLSX.utils.book_append_sheet(wb, ws, 'Sheet1');// 將 workbook 寫入文件XLSX.writeFile(wb, 'tablename.xlsx');}
</script>

3. 自定義表格的導(dǎo)出 (div拼成的表格)

比如這種前端拼成的,又附帶各種樣式的表格
在這里插入圖片描述
一些常用的格式:
(1):合并單元格
(2):列寬
(3):背景色
(4):字體相關(guān)-大小粗細(xì)顏色字體等
(5):表格線,邊框
詳細(xì)的格式可以參考:
https://www.jianshu.com/p/869375439fee
https://www.npmjs.com/package/xlsx-style

數(shù)據(jù)處理就不寫了,數(shù)據(jù)處理為數(shù)組就可以了
const toExcel=()=>{const data = [['左上表頭','','','右上',''],['標(biāo)題1','','','',''],['標(biāo)題','測試合并','','',''],['固定標(biāo)題','123','123','',''],['左下表頭','','','右下',''],['2021','¥28337','測試數(shù)據(jù)','北京','黑龍江'],......]const worksheet = XLSX.utils.aoa_to_sheet([headers, ...data])const workbook = XLSX.utils.book_new()worksheet['!ref'] = `A1:AI${data.length}`//列寬 按excel的列順序排列,對應(yīng)A列,B列, C列......worksheet["!cols"] = [{wpx: 200}, {wpx: 80},{wpx: 80},{wpx: 110}, {wpx: 110},];/* 合并單元格 默認(rèn)合并當(dāng)前格的右側(cè)格子{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } }A1 與 B1 合并 內(nèi)容為 A1 的內(nèi)容s:start 合并開始 e:end 合并結(jié)束r:row 行 c:col 列 */worksheet['!merges'] = [{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } },{ s: { r: 0, c: 4 }, e: { r: 0, c: 5 } },{ s: { r: 4, c: 0 }, e: { r: 4, c: 1 } },......];//表格詳細(xì)樣式for (let key in worksheet) {if (key == '!ref' || key == '!merges' || key == '!cols' || key == '!rows') {continue} else {//通過key值來選擇篩選想要的設(shè)置樣式的單元格if (key.substring(1)=='1'||key.substring(1)=='5'|| key == 'A2') {worksheet[key].s = { // 設(shè)置單元格樣式fill: { // 設(shè)置背景色fgColor: { rgb: 'F2F3F7' },},font: { // 設(shè)置字體name: '等線', // 字體名稱sz: 16, // 字體大小bold: true, // 字體是否加粗color:{ //字體顏色rgb:'ed263d'}},border:{ //設(shè)置邊框top: {style: 'thin',color:{rgb:'e5e7eb'}},bottom: {style: 'thin',color:{rgb:'e5e7eb'}}},alignment: {horizontal: 'center', // 橫向(向左、向右、居中)vertical: 'center', // 縱向(向上、向下、居中)wrapText: true, // 設(shè)置單元格自動換行,目前僅對非合并單元格生效indent: 0 // 設(shè)置單元格縮進(jìn)}}}else if(key == 'B1'){......}}}XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')const tmpDown = new Blob([s2ab(XLSX_STYLE.write(workbook, {bookType: 'xlsx',bookSST: false,type: 'binary',cellStyles: true,})),])downloadExcelFile(tmpDown, 'excelname' + '.xlsx')
}/*用到的方法*/
export function s2ab(s) {if (typeof ArrayBuffer !== 'undefined') {const buf = new ArrayBuffer(s.length)const view = new Uint8Array(buf);for (let i = 0; i != s.length; ++i) {view[i] = s.charCodeAt(i) & 0xff}return buf} else {const buf = new Array(s.length)for (let i = 0; i != s.length; ++i) {buf[i] = s.charCodeAt(i) & 0xff}return buf}
}/*** 使用 a 標(biāo)簽下載文件*/
export function downloadExcelFile(obj, fileName){const a_node = document.createElement('a')a_node.download = fileNameif ('msSaveOrOpenBlob' in navigator) {window.navigator.msSaveOrOpenBlob(obj, fileName)} else {a_node.href = URL.createObjectURL(obj)}a_node.click()setTimeout(() => {URL.revokeObjectURL(obj)}, 2000)
}

參考文章:https://blog.csdn.net/Cai181191/article/details/131130926

http://www.risenshineclean.com/news/64899.html

相關(guān)文章:

  • 重慶裝修貸廣州seo服務(wù)外包
  • 廣州天河區(qū)網(wǎng)站建設(shè)搜索引擎推廣有哪些
  • 移動端是指手機(jī)還是電腦優(yōu)化大師如何刪掉多余的學(xué)生
  • 安卓市場2022最新版下載河南網(wǎng)站關(guān)鍵詞優(yōu)化
  • 蘇州網(wǎng)站建設(shè)選蘇州夢易行百度網(wǎng)游排行榜
  • 余姚網(wǎng)站制作軟文營銷是什么意思
  • 俄文網(wǎng)站策劃搜索引擎都有哪些
  • 燕郊做網(wǎng)站的外貿(mào)網(wǎng)站建設(shè) google
  • 淘客軟件自動做網(wǎng)站百度網(wǎng)址大全舊版
  • 網(wǎng)站界面用什么軟件做百度云電腦版網(wǎng)站入口
  • 適合做外鏈的網(wǎng)站互聯(lián)網(wǎng)平臺
  • 社區(qū)問答網(wǎng)站開發(fā)谷歌推廣開戶
  • 杭州網(wǎng)站建設(shè)杭州磁力引擎
  • 百度網(wǎng)站快速排名公司重慶seo網(wǎng)絡(luò)推廣
  • 佛山市城市建設(shè)檔案館網(wǎng)站競猜世界杯
  • 深圳網(wǎng)站建設(shè)html5惠州seo怎么做
  • 做外貿(mào)收費的網(wǎng)站seo交流論壇
  • 買公司的網(wǎng)站建設(shè)北京seo顧問外包
  • 盤古建站模板seo研究中心論壇
  • 河南官網(wǎng)網(wǎng)站建設(shè)廣告語
  • 互動網(wǎng)站設(shè)計與制作提供seo顧問服務(wù)適合的對象是
  • 上海裝修公司做網(wǎng)站seo日常工作
  • 小網(wǎng)站建設(shè)360搜索引擎
  • 西藏做網(wǎng)站找誰網(wǎng)址關(guān)鍵詞查詢網(wǎng)站
  • 一諾建站廣東省人大常委會
  • 自貢做網(wǎng)站的公司百度快速收錄賬號購買
  • ftp網(wǎng)站目錄深圳關(guān)鍵詞優(yōu)化公司哪家好
  • 嘉興南湖區(qū)優(yōu)秀營銷型網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化計劃
  • 政府網(wǎng)站建設(shè)依據(jù)怎么做網(wǎng)站宣傳
  • 網(wǎng)站建設(shè)主要內(nèi)容包括北京網(wǎng)站建設(shè)運營