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

vue導入導出excel、設置單元格背景色、文字居中、合并單元格、設置列寬(使用xlsx庫和xlsx-style庫)

這篇具有很好參考價值的文章主要介紹了vue導入導出excel、設置單元格背景色、文字居中、合并單元格、設置列寬(使用xlsx庫和xlsx-style庫)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

xlsx

xlsx是由SheetJS開發(fā)的一個處理excel文件的npm庫

適用于前端開發(fā)者實現(xiàn)導入導出excel文件的經(jīng)典需求

為了區(qū)別于xlsx文件,突出其應用語言,該庫通常又被稱為js-xlsx

導出js數(shù)據(jù)為Excel文件

需要以下步驟:

  1. 安裝 xlsx 庫 你可以使用 npm 包管理器安裝 xlsx 庫,也可以將 xlsx 下載到本地,然后在 HTML 文件中通過 script 標簽引入。
  2. 準備數(shù)據(jù) 將需要導出的數(shù)據(jù)準備好,并將其存儲為一個數(shù)組或?qū)ο蟆?/li>
  3. 創(chuàng)建工作簿 通過 xlsx 庫的 utils.book_new() 方法創(chuàng)建一個工作簿(workbook)對象,該對象包含一個或多個工作表(worksheet)。
  4. 創(chuàng)建工作表 通過 xlsx 庫的 utils.json_to_sheet() 方法創(chuàng)建一個工作表,并將準備好的數(shù)據(jù)作為參數(shù)傳入該方法。如果需要創(chuàng)建多個工作表,可以多次調(diào)用該方法,并將它們添加到工作簿對象中。
  5. 將工作表添加到工作簿 通過 xlsx 庫的 utils.book_append_sheet() 方法將創(chuàng)建好的工作表添加到工作簿對象中。
  6. 導出數(shù)據(jù) 通過 xlsx 庫的 writeFile() 方法將工作簿對象導出為 Excel 文件。你可以指定導出的文件名和文件格式,比如 .xlsx.csv

以下是一個使用 xlsx 庫將數(shù)據(jù)導出為 Excel 文件的示例代碼:

vue

<script setup>
import * as XLSX from "xlsx/xlsx.mjs";
const download = () => {
  const data = [
    ["姓名", "年齡", "性別"],
    ["張三", 18, "男"],
    ["李四", 22, "女"],
    ["王五", 25, "男"],
  ];
  const workbook = XLSX.utils.book_new();
  const worksheet = XLSX.utils.json_to_sheet(data);
  XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
  XLSX.writeFile(workbook, "data.xlsx");
};
</script>

<template>
  <button @click="download">導出</button>
</template>

導入Excel文件生成js數(shù)據(jù)

  1. 使用input type="file"選擇xlsx文件
  2. 使用fileReader讀取文件為二進制編碼
  3. XLSX.read方法處理二進制編碼為worksheet對象
  4. XLSX.utils.sheet_to_json轉換worksheet對象為json數(shù)據(jù),實際上就是js數(shù)組
  5. 最后處理數(shù)組數(shù)據(jù)為自己想要的格式即可
<template>
  <article>
    <p>導入高德地圖xlsx文件</p>
    <input type="file" ref="upload" accept=".xls,.xlsx" />
  </article>
</template>

<script>
import XLSX from "xlsx"
export default {
  mounted() {
    // 監(jiān)聽表格導入事件
    this.$refs.upload.addEventListener("change", e => {
      this.readExcel(e)
    })
  },
  methods: {
    readExcel(e) {
      //表格導入
      const files = e.target.files
      //如果沒有文件名,不往下執(zhí)行
      if (files.length <= 0) return
      // 上傳文件格式不正確,非xls或者xlsx格式文件,不往下執(zhí)行
      if (!/\.(xls|xlsx)$/.test(files[0].name.toLowerCase())) return
      const fileReader = new FileReader()
      // readAsBinaryString將文件讀取為二進制編碼
      fileReader.readAsBinaryString(files[0])
      // 讀取完成
      fileReader.onload = ev => {
        try {
          // 二進制數(shù)據(jù)
          const data = ev.target.result
          // xlsx處理二進制數(shù)據(jù)
          const workbook = XLSX.read(data, {
            type: "binary"
          })
          //取第一張表
          const wsname = workbook.SheetNames[0] 
          // 根據(jù)表格內(nèi)容生成json數(shù)據(jù)
          const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]) 
          const outputs = [] //清空接收數(shù)據(jù)
          for (let i = 0; i < ws.length; i++) {
            const sheetData = {
              value: ws[i].adcode,
              label: ws[i].中文名
            }
            outputs.push(sheetData)
          }
        } catch (e) {
          console.log(e)
        }
      }
    }
  }
}
</script>

xlsx-js-style庫使用

xlsx基礎庫不提供樣式設置,可以使用xlsx-js-style庫,這個庫是xlsx庫的fork版本,并添加了樣式定義

詳細樣式可以查看https://github.com/gitbrent/xlsx-js-style/

可以調(diào)節(jié)背景色、字體樣式、border

npm i -s xlsx-js-style
<script setup>
import XLSX from "xlsx-js-style";
console.log();
const download = () => {
  const wb = XLSX.utils.book_new();
  const ws = XLSX.utils.aoa_to_sheet([
    ["Hello", "World"],
    [1, 2],
  ]);
  // 在單元格對象中添加 `s` 屬性來設置該單元格的樣式
  ws["A1"].s = {
    font: { bold: true },
    alignment: { horizontal: "center" },
    fill: { fgColor: { rgb: "FFFF0000" } },
  };
  ws["B2"].s = {
    alignment: { horizontal: "center" },
    font: { bold: true },
    fill: { fgColor: { rgb: "FFFF0000" } },
  };
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  XLSX.writeFile(wb, "example.xlsx");
};
</script>

去掉標題頭

XLSX.utils.json_to_sheet默認使用Object.keys生成頭部

所以如下數(shù)據(jù)格式不加上skipHeader: true,會出現(xiàn)0 1 2的索引頭部文章來源地址http://www.zghlxwxcb.cn/news/detail-604692.html

<script setup>
import XLSX from "xlsx-js-style";
const download = () => {
  const data = [
    ["姓名", "年齡", "性別"],
    ["張三", 18, "男"],
    ["李四", 22, "女"],
    ["王五", 25, "男"],
  ];
  const wb = XLSX.utils.book_new();
  const ws = XLSX.utils.json_to_sheet(data, {
    skipHeader: true,
  });
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  XLSX.writeFile(wb, "example.xlsx");
};
</script>

<template>
  <button @click="download">導出</button>
</template>

設置列寬

<script setup>
import XLSX from "xlsx-js-style";
const download = () => {
  const data = [
    { 姓名: "張三", 年齡: 18, 性別: "男" },
    { 姓名: "李四", 年齡: 20, 性別: "女" },
    { 姓名: "王五", 年齡: 22, 性別: "男" },
  ];
  const wb = XLSX.utils.book_new();
  const ws = XLSX.utils.json_to_sheet(data);
  ws["!cols"] = [
    {
      wpx: 150,
    },
    {
      wpx: 500,
    },
    {
      wpx: 100,
    },
  ];
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  XLSX.writeFile(wb, "example.xlsx");
};
</script>

<template>
  <button @click="download">導出</button>
</template>

合并單元格

<script setup>
import XLSX from "xlsx-js-style";
const download = () => {
  const data = [
    { 姓名: "張三", 年齡: 18, 性別: "男" },
    { 姓名: "李四", 年齡: 20, 性別: "女" },
    { 姓名: "王五", 年齡: 22, 性別: "男" },
  ];
  const wb = XLSX.utils.book_new();
  const ws = XLSX.utils.json_to_sheet(data);
  // s 表示要合并的單元格范圍的左上角單元格,r 表示該單元格的行號,c 表示該單元格的列號,行列號從 0 開始計數(shù)。所以 { r: 0, c: 0 } 表示第 1 行第 1 列的單元格,即 A1 單元格。
  // e 表示要合并的單元格范圍的右下角單元格,其含義與 s 相同。所以 { r: 0, c: 1 } 表示第 1 行第 2 列的單元格,即 B1 單元格。
  // 因此,{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } } 表示要合并第 1 行第 1 列和第 1 行第 3 列之間的元格。
  // 注意,合并會以開始位置單元格中的內(nèi)容為準,所以合并后的單元格中的內(nèi)容為 A1 單元格中的內(nèi)容。
  ws["!merges"] = [{ s: { r: 0, c: 0 }, e: { r: 0, c: 2 } }];
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  XLSX.writeFile(wb, "example.xlsx");
};
</script>

<template>
  <button @click="download">導出</button>
</template>

到了這里,關于vue導入導出excel、設置單元格背景色、文字居中、合并單元格、設置列寬(使用xlsx庫和xlsx-style庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • vue2 - Antd Table組件的頭部單元格 字體加粗, 文字內(nèi)容居中
解決辦法:

    vue2 - Antd Table組件的頭部單元格 字體加粗, 文字內(nèi)容居中 解決辦法:

    問題:默認情況下,英文字體加粗,中文字體不加粗, 在當前.vue的style增加穿透antd table的表頭樣式,然后在使用table的外層設置加上class 分2種情況,單獨設置表頭,或者所有單元格都居中 單獨設置表頭:在設置列時,加上方法:customHeaderCell 所有單元格:在設置第一列時加

    2024年02月15日
    瀏覽(49)
  • vba設置excel單元格背景色

    vba設置excel單元格背景色位藍色 參考鏈接 【VBA】給單元格設置背景色_vba 將一行底色置綠色-CSDN博客 https://blog.csdn.net/s_h_m114_2/article/details/105787093 參考2? ?知乎? ? ???????? VBA--單元格的背景色設置? 特此記錄 anlog 2024年1月16日

    2024年01月18日
    瀏覽(20)
  • python 設置 win32 excel 設置 非連續(xù)單元格 背景色
  • EasyExcel導出Excel設置單元格文本格式(親測有效)

    EasyExcel導出Excel設置單元格文本格式(親測有效)

    EasyExcel的maven依賴, 注意版本問題, 我的是3.0+的版本 下面是一開始的代碼, 是不生效的, 查了好多都是這么設置的, 我也是這么寫的但是就是不生效, 然后查了資料好多也說是注冊寫處理器必須是一個, 不能是多個, 因為我的是注冊兩個寫處理器, 然后我就去掉了一個處理, 但是

    2024年02月16日
    瀏覽(17)
  • 【vue導入導出Excel】vue簡單實現(xiàn)導出和導入復雜表頭excel表格功能【純前端版本和配合后端版本】

    【vue導入導出Excel】vue簡單實現(xiàn)導出和導入復雜表頭excel表格功能【純前端版本和配合后端版本】

    前言 這是一個常用的功能,就是導入和導出excel表格 但是時常會遇到一些復雜表頭的表格導出和導入 比如我這個案例里面的三層表頭的表格。 網(wǎng)上看了下發(fā)現(xiàn)了一個非常簡單導出和導入方法 當然這個是純前端的版本,會出現(xiàn)分頁不好下載的情況。所以實際工作中,導出還是

    2024年02月11日
    瀏覽(26)
  • Vue3 導入導出Excel

    Vue3 導入導出Excel

    提供一個 Excel 文件,將里面的內(nèi)容導出成 JSON 數(shù)組 提供一個 JSON 數(shù)組,生成 Excel 文件并下載 表格 1. 安裝步驟 2.使用 3.導出 導出之后發(fā)現(xiàn)數(shù)據(jù)結構不是我們想要的那種,此時就能通過以下方法轉換。 更改列寬 4.導入 如果excel中含有日期,需要解析時間格式的內(nèi)容。 XLSL.re

    2024年02月14日
    瀏覽(26)
  • Java使用poi導出excel針對不同數(shù)據(jù)列配置設置不同單元格格式(適用于通用導出excel數(shù)據(jù))

    Java使用poi導出excel針對不同數(shù)據(jù)列配置設置不同單元格格式(適用于通用導出excel數(shù)據(jù))

    公司大部分業(yè)務都是查詢相關的業(yè)務, 所以建了一個項目專門做數(shù)據(jù)查詢, 數(shù)據(jù)中轉等抽象通用的業(yè)務, 有一天給我安排了一個功能, 做excel導出, 配置好查詢sql和表頭字段映射后即可導出excel, 無需修改代碼 后來因為導出數(shù)據(jù)要求保留幾位小數(shù)或者轉換成百分比等設置單元格格

    2024年02月07日
    瀏覽(26)
  • Vue中如何實現(xiàn)Excel導入導出

    在前面員工的添加是一個一個進行的,如果一次性添加多個員工信息,這時候就會很繁瑣 因此需要我們開發(fā)一個批量導入的功能,將用戶的信息存儲到 excel 中然后進行批量導入 1. 分析 vue-element-admin 中的導入方案 在vue-element-admin中,大佬已經(jīng)封裝好了Excel的導入導出方案,我

    2023年04月14日
    瀏覽(25)
  • vue+element UI Excel導入導出

    vue+element UI Excel導入導出

    ?1.終端執(zhí)行命令 2.script中導入 3.單表頭效果圖 4.html代碼: ?

    2024年02月04日
    瀏覽(24)
  • SpringBoot和Vue實現(xiàn)Excel導入導出

    SpringBoot和Vue實現(xiàn)Excel導入導出

    hutool工具 hutool工具 瀏覽器格式 打開瀏覽器能下載Excel即成功。 3.1 測試: 通過postman測試,send之后返回true測試成功。 在Navicat刷新,可以看到新寫入的數(shù)據(jù)。

    2024年03月17日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包