基于vue来前端生成excel模板(支持多sheet,动态表头等,导入模板,傻瓜式模板)

 workbook2blob (workbook) {
        // 生成excel的配置项
        var wopts = {
          // 要生成的文件类型
          bookType: 'xlsx',
          // // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
          bookSST: false,
          type: 'binary'
        }
        var wbout = XLSX.write(workbook, wopts)
        // 将字符串转ArrayBuffer
        function s2ab (s) {
          var buf = new ArrayBuffer(s.length)
          var view = new Uint8Array(buf)
          for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xff
          return buf
        }
        let buf = s2ab(wbout)
        var blob = new Blob([buf], {
          type: 'application/octet-stream'
        })
        return blob
      },

      // 将blob对象 创建bloburl,然后用a标签实现弹出下载框
      openDownloadDialog (blob, fileName) {
        if (typeof blob === 'object' && blob instanceof Blob) {
          blob = URL.createObjectURL(blob) // 创建blob地址
        }
        var aLink = document.createElement('a')
        aLink.href = blob
        // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,有时候 file:///模式下不会生效
        aLink.download = fileName || ''
        var event
        if (window.MouseEvent) event = new MouseEvent('click')
        //   移动端
        else {
          event = document.createEvent('MouseEvents')
          event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
        }
        aLink.dispatchEvent(event)
      },
      exportBtn () {
        this.exportExcel()
      },
      exportExcel () {
        let sheet1data = [{ 部门: '行政部', 数量: 2 }, { 部门: '前端部', 数量: 3 }]
        let sheet2data = [{ 姓名: '张三', 事件: '整理文件' }, { 姓名: '李四', 事件: '打印' }]
        let sheet3data = [{ 名称: '王五', 工种: 'Vue' }, { 名称: '二楞', 工种: 'react' }]
        var sheet1 = XLSX.utils.json_to_sheet(sheet1data)
        var sheet2 = XLSX.utils.json_to_sheet(sheet2data)
        var sheet3 = XLSX.utils.json_to_sheet(sheet3data)
        console.log(sheet1, sheet2, sheet3, 'sheet123')
        // 创建一个新的空的workbook
        var wb = XLSX.utils.book_new()
        XLSX.utils.book_append_sheet(wb, sheet1, '部门统计')
        XLSX.utils.book_append_sheet(wb, sheet2, '行政部')
        XLSX.utils.book_append_sheet(wb, sheet3, '前端部')
        const workbookBlob = this.workbook2blob(wb)
        this.openDownloadDialog(workbookBlob, '部门统计.xls')
      },

三个方法,贴进去就可以用,搞个button调用exportBtn 就完事
是基于vue,需要引入对应依赖包XLSX
下载方法
terminal里面输入

npm install xlsx --save

然后在头部引入

import XLSX from 'xlsx';

完事

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在.NET中,可以使用PDF库如iTextSharp或PDFsharp,按照预定义的模板生成PDF文档。 首先需要创建一个PDF文档对象,然后创建一个页面对象,将其添加到文档对象中。接着,可以使用不同的字体、颜色等属性来定义文本和其他元素。要使用预定义的模板,可以在文档中插入一个空的文本框,使用位置和大小属性将其放置在特定位置。然后,可以将模板的路径或一些其他标识符存储在应用程序配置文件中,从而轻松地在代码中引用该模板。最后,将数据填充到文本框中并保存PDF文档即可。在适当的位置,您可以添加条形码、二维码、图像等其他元素。 一旦定义好PDF模板,不仅可以在固定场景下生成PDF文档,而且可以自动化生成大量的PDF文档,例如发票、报告、合同等。此外,该方法还可以确保文档的一致性和精度。 ### 回答2: .net技术是微软公司推出的一种基于Windows操作系统的、强调Internet的一种开发语言和应用框架。在该技术中,可以通过使用固定模板的方法生成PDF文件。这样,当我们需要生成类似的pdf文件时,只需要按照固定模板生成即可,避免了累赘的操作,同时也方便了我们的工作。 在使用.net技术生成PDF文件时,需要先创建PDF模板。可以通过使用Adobe Acrobat或Microsoft Word等工具来创建一个预设格式的PDF文件作为模板,包括要插入的文本、图片、表格等元素。然后,使用.net技术中的PdfSharp、iTextSharp等PDF库来读取模板动态地插入数据,生成最终的PDF文件。 使用固定模板生成PDF文件有很多好处,例如可以保持生成的PDF文件的格式统一,避免了在不断重复相似操作时会出现的格式问题。而且,使用模板可以帮助我们快速地生成一个预设的PDF文件,可以大大提高我们的工作效率和准确性。 总而言之,在.net技术中使用固定模板生成PDF文件是一种非常常用的方法,它可以帮助我们轻松处理复杂的文档生成任务,不但减少重复操作,也能够提高我们的工作效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值