当前位置:   article > 正文

免费开源luckysheet+luckyExcel,本地导入文件,渲染excel,公式计算,导出excel_lucky sheet

lucky sheet

项目需求:

本地导入excel,页面渲染excel,一键计算:根据计算逻辑求出得分回写到对应单元格,最后导出excel;

前端技术:Vue2,luckysheet,luckyExcel,exceljs,mathjs,antdv

Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源

上传下载demo:  luckysheet-demo: luckysheet-demo

用到的插件和api:

1,本地导入excel并渲染

npm下载luckysheet后通过 import 方式引入报错,官网给出了两种引入方式:CDN , 本地引入;CDN没什么说的直接引入即可,此次介绍一下本地引入;

快速上手 | Luckysheet文档

  1. //文件上传按钮
  2. <div>
  3. <a-upload
  4. :file-list="fileList"
  5. name="file"
  6. :multiple="false" //禁止多选
  7. :showUploadList="{showRemoveIcon: false}" //隐藏删除文件icon
  8. :before-upload="handleUpload"
  9. >
  10. <a-button type="primary" class="upload">
  11. 点击上传
  12. </a-button>
  13. </a-upload>
  14. <div class="uploadTip">
  15. 只能上传xlsx文件!
  16. </div>
  17. </div>
  18. //渲染excel容器
  19. <div id="luckysheet" class="luckySheet" v-show="showLuckyExcel"></div>
  20. //-----methods----------------------------------------------
  21. import LuckyExcel from 'luckyexcel'; //引入LuckyExcel
  22. //luckysheet 引入报错,官网给出了两种引入方式:CDN , 本地引入
  23. //(1)上传文件
  24. handleUpload(file){
  25. if(file.name.substring(file.name.length-5) === '.xlsx'){
  26. this.spinning = true
  27. this.spinningTip = '文件上传中...'
  28. this.file = file;
  29. this.fileList = [file]; //只允许上传一个文件
  30. LuckyExcel.transformExcelToLucky(file, (exportJson, luckysheetfile) => {
  31. luckysheet.destroy();
  32. this.initExcel(exportJson);
  33. },error =>{
  34. this.$message.error(error)
  35. });
  36. return false;
  37. }else{
  38. this.$message.error('文件格式错误,请上传.xlsx文件!')
  39. }
  40. },
  41. //(2)渲染excel
  42. initExcel(exportJson) {
  43. //工作表保护
  44. exportJson.sheets.forEach(t=>{
  45. t.config.authority = {
  46. sheet: 1,
  47. hintText: "您试图更改的单元格或图表位于受保护的工作表中!",
  48. allowRangeList: [
  49. { sqref: '$A$2:$D$6' },//设置A2~D6为可编辑区域,其它区域不可编辑
  50. ],
  51. }
  52. });
  53. //初始化excel
  54. luckysheet.create({
  55. container: 'luckysheet', //dom id
  56. showtoolbar: false, //隐藏工具栏
  57. sheetFormulaBar: false, //隐藏公式栏
  58. enableAddRow: false, //隐藏新增row
  59. showtoolbarConfig: {
  60. print: false // 隐藏插件内部打印按钮
  61. },
  62. sheetRightClickConfig: { // 工作表右键:禁用 删除,复制...
  63. delete: false,
  64. copy: false,
  65. rename: false,
  66. color: false,
  67. hide: false,
  68. move: false,
  69. },
  70. cellRightClickConfig: { //单元格右键配置
  71. paste: false, // 粘贴
  72. insertRow: false, // 插入行
  73. insertColumn: false, // 插入列
  74. deleteRow: false, // 删除选中行
  75. deleteColumn: false, // 删除选中列
  76. deleteCell: false, // 删除单元格
  77. hideRow: false, // 隐藏选中行和显示选中行
  78. hideColumn: false, // 隐藏选中列和显示选中列
  79. clear: false, // 清除内容
  80. matrix: false, // 矩阵操作选区
  81. sort: false, // 排序选区
  82. filter: false, // 筛选选区
  83. chart: false, // 图表生成
  84. image: false, // 插入图片
  85. link: false, // 插入链接
  86. data: false, // 数据验证
  87. cellFormat: false // 设置单元格格式
  88. },
  89. showinfobar: false, // 显示头部返回标题栏
  90. data: exportJson.sheets, //excel数据
  91. });
  92. },
2,luckysheet 本地引入步骤:

(1)gitee上下载项目: https://www.wpsshop.cn/w/凡人多烦事01/article/detail/396030

推荐阅读
相关标签
  

闽ICP备14008679号