中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在vue中導出Excel表格

發布時間:2021-06-01 17:46:36 來源:億速云 閱讀:182 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關如何在vue中導出Excel表格,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、首先我們需要安裝3個依賴,file-saver、xlsx和script-loader。

使用npm安裝:

npm install file-saver xlsx -S
npm install script-loader -D

使用yarn安裝:

yarn add file-saver xlsx -S
yarn add script-loader -D

2、在/src目錄下新建一個vendor(名字也可自取)文件夾,存入Blob.js和Export2Excel.js文件。
Blob.js和Export2Excel.js文件地址:https://github.com/han6054/export-excel

當然也可以自行下載,或許會有版本的問題吧。

3、在/build/webpack.base.conf.js中新增一行代碼(vendor的名字必須和第二步新建的文件夾名字相同)。

resolve: {
 extensions: ['.js', '.vue', '.json'],
 alias: {
  'vue$': 'vue/dist/vue.esm.js',
  '@': resolve('src'),
  'vendor': path.resolve(__dirname, '../src/vendor') // 新增這一行
 }
}

4、在vue項目中的使用。

/**
 * excel導出
 */
exportTable () {
 // this.DefaultData.exportExcelMax限制一下導出的總條數
 if (this.totals <= this.DefaultData.exportExcelMax) {
  this.$confirm('確定要導出當前<strong>' + this.totals + '</strong>條數據?', '提示', {
   dangerouslyUseHTMLString: true,
   confirmButtonText: '確定',
   cancelButtonText: '取消'
  }).then(() => {
   this.getExpportData()
  }).catch(() => {
  })
 } else {
  this.$confirm('當前要導出的<strong>' + this.totals + '</strong>條數據,數據量過大,不能一次導出!<br/>建議分時間段導出所需數據。', '提示', {
   dangerouslyUseHTMLString: true,
   showCancelButton: false
  }).then(() => {
  }).catch(() => {
  })
 }
},

/**
 * 對導出數據格式處理
 */
formatJson (filterVal, jsonData) {
 return jsonData.map(v => filterVal.map(j => v[j]))
},

/**
 * 導出的列表數據
 */
getExpportData: function () {
 const loading = this.$loading({
  lock: true,
  text: '正在導出,請稍等......',
  spinner: 'el-icon-loading',
  background: 'rgba(0, 0, 0, 0.7)'
 })
 const data = {
  phoneNo: this.formInline.phoneNo,
  userName: this.formInline.userName,
  amount: this.formInline.amount,
  fee: this.formInline.fee,
  currentPage: this.currentPage,
  pageSize: this.DefaultData.exportExcelMax
 }
 // 這里封裝了axios,根據自身情況修改即可
 this.http(
  this.ApiSetting.orderExport,
  data
 ).then((res) => {
  // handleDataList這里可以對導出的數據根據需求做下處理
  const handleDataList = res.data.list
  for (let i in res.data.list) {
   handleDataList[i].amount = res.data.list[i].amount * 100
   handleDataList[i].fee = res.data.list[i].fee + '%'
  }
  if (res.data.list.length > 0) {
   require.ensure([], () => {
    /* eslint-disable */
    // 這里的徑路要修改正確
    const { export_json_to_excel } = require('../../vendor/Export2Excel')
    /* eslint-enable */
    // 導出的表頭
    const tHeader = ['手機號碼', '用戶姓名', '交易金額', '手續費']
    // 導出表頭要對應的數據
    const filterVal = ['phoneNo', 'userName', 'amount', 'fee']
    // 如果對導出的數據沒有可處理的需求,把下面的handleDataList換成res.data.list即可,刪掉上面相應的代碼
    const data = this.formatJson(filterVal, handleDataList)
    // this.DefaultData.formatLongDate.getNow()自己寫的一個獲取當前時間,方便查找導出后的文件。根據需求自行可處理。
    export_json_to_excel(tHeader, data, '訂單查詢列表-' + this.DefaultData.formatLongDate.getNow())
    this.$message({
     message: '導出成功',
     duration: 2000,
     type: 'success'
    })
   })
  } else {
   this.$message({
    message: '數據出錯,請聯系管理員',
    duration: 2000,
    type: 'warning'
   })
  }
  loading.close()
 }, error => {
  console.log(error)
  loading.close()
 })
}

上述就是小編為大家分享的如何在vue中導出Excel表格了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莎车县| 贞丰县| 天等县| 沛县| 峡江县| 绵竹市| 凤凰县| 佛坪县| 富宁县| 简阳市| 慈溪市| 鹤庆县| 江陵县| 如皋市| 双峰县| 温宿县| 崇仁县| 江安县| 孟村| 蒙城县| 万州区| 星座| 清新县| 平凉市| 峨山| 台安县| 张家港市| 永州市| 郧西县| 德昌县| 金堂县| 梧州市| 克山县| 花莲县| 日喀则市| 白银市| 朝阳县| 科尔| 甘孜县| 盘山县| 龙川县|