Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

全栈开发小学生
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • element-ui

  • vue3

  • vue实现图片文件的显示和上传
  • composition-api
  • vue常用eslint配置模板
  • vue.config.js常用配置
  • vuepress-theme-vdoing本站使用主题
  • vue常见问题
  • 常用插件

    • pikaz-excel-js基于vue的excel导入导出插件
      • Introduction
      • Features
      • demo
        • demo 代码
      • Installation
        • With npm or yarn
        • With cdn
      • For Vue-cli
        • Export
        • Typical use
        • Attributes
        • Methods
        • Import
        • Typical use
        • Attributes
      • Reference
    • vuex数据持久化插件vuex-persist
  • 《Vuejs》
  • 常用插件
mrcdh
2021-12-31
目录

pikaz-excel-js基于vue的excel导入导出插件

# Introduction

这个项目是在工作中并没有找到一个开箱即用的 excel 导入导出插件,js 里比较知名的xlsx (opens new window)插件免费版没办法修改样式,而xlsx-style (opens new window)插件需要修改源码,都比较麻烦,所以在 xlsx 和 xlsx-style 的基础上做了简单的封装,做到开箱即用,降低使用成本。

# Features

  • 支持导出 excel 文件,并可设置列宽,边框,字体,字体颜色,字号,对齐方式,背景色等样式。
  • 支持 excel 文件导入,生成 json 数据,考虑到客户端机器性能,导入大量数据时,推荐拆分数据分成多个文件导入。

# demo (opens new window)

# demo 代码 (opens new window)

# Installation

# With npm or yarn

yarn add pikaz-excel-js
npm i -S pikaz-excel-js
1
2

# With cdn

<script src="https://cdn.jsdelivr.net/npm/pikaz-excel-js"></script>
或者
<script src="https://unpkg.com/pikaz-excel-js"></script>
1
2
3

vue 文件引入

export default { components: { ExcelExport: window.PikazJsExcel.ExcelExport } };
1

请确保 vue 版本在 2.0 以上

# For Vue-cli

# Export

# Typical use

<excel-export :sheet="sheet">
  <div>导出</div>
</excel-export>
1
2
3

.vue file:

  import {ExcelExport} from 'pikaz-excel-js'
  ...
  export default {
        components: {
            ExcelExport,
        },
        data () {
          return {
            sheet:[
              {
                title:"水果的味道",
                tHeader:["荔枝","柠檬"],
                table:[{litchi:"甜",lemon:"酸"}],
                keys:["litchi","lemon"],
                sheetName:"水果的味道"
              }
            ]
          }
        }
  ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# Attributes

参数 说明 类型 可选值 默认值
bookType 文件格式 string xlsx/xls xlsx
filename 文件名称 string -- excel
manual 手动导出模式,设置为 true 时,取消点击导出,并可调用pikaExportExcel方法完成导出 boolean true/false false
sheet 表格数据,每个表格数据对象配置具体看下方表格配置 array -- --
before-start 处理数据之前的钩子,参数为导出的文件格式,文件名,表格数据,若返回 false 则停止导出 function(bookType, filename, sheet) -- --
before-export 导出文件之前的钩子,参数为导出的文件格式,文件名,blob 文件流,若返回 false 则停止导出 function(blob, bookType, filename) -- --
on-error 导出失败的钩子,参数为错误信息 function(err) -- --
表格参数配置
参数 说明 类型 可选值 默认值
title 表格标题,自动设置合并,非必须项 string -- --
tHeader 表头,非必须项 array -- --
multiHeader 多级表头,即一个数组中包含多个表头数组,非必须项 array -- --
table 表格数据,如果无数据,设置为空字符"",避免使用 null 或 undefined array -- --
merges 合并单元格,合并的表头和表格多余数据项以空字符串填充,非必须项 ['A1:A2'] array -- --
keys 数据键名,需与表头内容顺序对应 array -- --
colWidth 列宽,若不传,则列宽自适应(自动列宽时数据类型必须为 string,如有其他数据类型,请手动设置列宽),数据量多时推 荐 设置列宽 array
sheetName 表格名称 string -- sheet
globalStyle 表格全局样式,具体参数查看下方表格全局样式 object -- 表格全局样式
cellStyle 单元格样式,每个单元格对象配置具体参数查看下方单元格样式 array -- --
表格全局样式
参数 属性名 说明 类型 可选值 默认值
border top 格式如:{style:'thin',color:{ rgb: "000000" }} object style:thin/medium/dotted/dashed {style:'thin',color:{ rgb: "000000" }}
right 格式如:{style:'thin',color:{ rgb: "000000" }} object style:thin/medium/dotted/dashed {style:'thin',color:{ rgb: "000000" }}
bottom 格式如:{style:'thin',color:{ rgb: "000000" }} object style:thin/medium/dotted/dashed {style:'thin',color:{ rgb: "000000" }}
left 格式如:{style:'thin',color:{ rgb: "000000" }} object style:thin/medium/dotted/dashed {style:'thin',color:{ rgb: "000000" }}
font name 字体 string 宋体/黑体/Tahoma等 宋体
sz 字号 number -- 12
color 字体颜色,格式如:{ rgb: "000000" } object -- { rgb: "000000" }
bold 是否为粗体 boolean true/false false
italic 是否为斜体 boolean true/false false
underline 是否有下划线 boolean true/false false
shadow 是否有阴影 boolean true/false false
fill fgColor 背景色 { rgb: "ffffff" } -- { rgb: "ffffff" }
alignment horizontal 水平对齐方式 string left/center/right center
vertical 垂直对齐方式 string bottom/center/top center
wrapText 文字是否换行 boolean true/false false
单元格样式
参数 说明 类型 可选值 默认值
cell 单元格名称,如A1 string -- --
其他属性与[表格全局样式](#global-style)设置方式一致

# Methods

方法名 说明 参数
pikaExportExcel 导出函数 --

# Import

# Typical use

<excel-import :on-success="onSuccess">
  <div>导入</div>
</excel-import>
1
2
3

.vue file:

  import {ExcelImport} from 'pikaz-excel-js'
  ...
  export default {
        components: {
            ExcelImport,
        },
        methods:{
          onSuccess(data, file){
            console.log(data)
          }
        }
  ...
1
2
3
4
5
6
7
8
9
10
11
12

# Attributes

参数 说明 类型 可选值 默认值
sheetNames 需要导入表的表名,如['插件信息'] Array -- --
removeBlankspace 是否移除数据中字符串的空格 Boolean true/false false
removeSpecialchar 是否移除不同版本及环境下 excel 数据中出现的特殊不可见字符,如 u202D 等,使用此功能,返回的数据将被转化为字符串 Boolean true/false true
before-import 文件导入前的钩子,参数 file 为导入文件 function(file) -- --
on-progress 文件导入时的钩子 function(event,file) -- --
on-change 文件状态改变时的钩子,导入文件、导入成功和导入失败时都会被调用 function(file) -- --
on-success 文件导入成功的钩子,参数 response 为生成的 json 数据 function(response, file) -- --
on-error 文件导入失败的钩子,参数 error 为错误信息 function(error, file) -- --

# Reference

https://www.jianshu.com/p/31534691ed53 (opens new window) https://www.cnblogs.com/yinxingen/p/11052184.html (opens new window)

#vue
上次更新: 2023/09/22, 16:54:32
vue常见问题
vuex数据持久化插件vuex-persist

← vue常见问题 vuex数据持久化插件vuex-persist→

最近更新
01
uniapp常见问题
03-19
02
Vue3项目搭建
12-25
03
使用pnpm的monorepo组织项目
11-01
更多文章>
Theme by Vdoing | Copyright © 2020-2025 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×