vue实现excel导入导出,vue表格导出excel简书

  vue实现excel导入导出,vue表格导出excel简书

  本文主要介绍了用Vue导入Excel的功能。本文一步步为你详细介绍,对你的学习或工作有一定的参考价值。有需要的朋友可以参考一下。

  

1.前端主导实现步骤

  第一步,点击页面上的导入按钮,读入Excel文件。

  包括插件。

  第二步,根据后端数据格式处理的要求,转换成他们需要的格式。

  你需要写自己的逻辑。

  第三步,通过后端接口,通过ajax将数据发回。

  接口,正常运行。

  简而言之:前端读excel文件,修改文件格式,调接口

  

2.实现读入Excel文件

  注意:这一步可以实现前端导入功能。如果有兴趣修改格式,可以继续看第三步。

  总结:将代码复制到您自己的文件夹中,并下载必要的插件。

  2.1使用elementUI提供的vue-admin-element中的上传方法(百度仓库克隆方法,官网也有)

  2.2下载npm安装包xlsx -S(默认情况下,步骤2.1现在已经完成)

  2.3引入UploadExcel组件,并将其注册为global(转到文件UploadExcel,复制它,打包组件就不用说了)

  如果不注册全局组件,请参考下面的代码:(喜欢的话可以在main.js中做,这里我按照可维护性来做)

  从导入PageTools。/PageTools

  从导入UploadExcel。/UploadExcel

  导出默认值{

  //可以在这里配置插件的初始化和插件提供的全局函数。

  安装(Vue) {

  //执行组件的全局注册。

  Vue.component (PageTools ,page tools)//注册工具栏组件

  Vue.component (Uploadexcel ,upload excel)//注册以导入Excel组件

  }

  }

  2.4介绍组件,使用组件,配置路由,设置点击回调函数(不用多说)

  2.5测试结果

  浏览器手动输入你设置的路由地址,页面跳转过来。

  小结:1.最重要的是复制然后下载必要的插件。

  2.需要引入UploadExcel组件(其功能是导入Excel文件),但不需要全局注册,看心情。

  3.导入组件并为他注册回调函数。他的两个参数是必要的。可以参考别人的源代码,这样更容易理解。

  4.excel导入插件的本质:将Excel转换成js分析后可以识别的常规数据,我们在得到数据后可以做任何操作。

  

3.对数据进行加工

  注意:这一步实际上是测试JavaScript的应用。可惜这个对我来说并不难,相信很久以后。

  3.1后端要求的格式:

  3.2我们必须处理的问题:

  将中文字段翻译成英文。在excel中读取名称,但在后端需要用户名。

  日期处理。从excel中读取的时间是一个数值,而后端需要一个标准日期。

  3.3单独封装一个处理函数:

  /**

  *结果excel表格内容

  //[{ 姓名:小张,手机号码: 13712345678},{.}]

  //目标

  //[{ 用户名:小张,手机: 13712345678},{.}]

  */

  跨Excel(结果){

  const userRelations={

  雇佣日期:工作时间,

  手机号码:手机,

  名称:用户名,

  雇佣确认日期:更正时间,

  工作编号:工作编号,

  部门:部门名称,

  就业形式:就业形式

  }

  返回results.map(item={

  const obj={}

  //1.取出这个对象的所有属性名:[姓名,手机号]

  //2.遍历这个数组,通过中文名字到userRelations找到对应的英文名字,保存值。

  const zhKeys=Object.keys(item)

  zhKeys.forEach(zhKey={

  const enKey=user relations[zhKey]

  //如果是时间格式的,就得转换。

  if(enKey=== correction time enKey=== time of entry ){

  obj[enKey]=新日期(formatExcelDate(item[zhKey])

  }否则{

  项目,项目

  }

  })

  返回对象

  })

  }

  handleSuccess({ results,header }) {

  Console.log(从当前excel文件中读取的内容是,结果)

  //结果:[{参赛日期:44502,姓名:xxxx}]

  //目标:

  //结果:[{timeOfEntry: 44502,用户名:xxxx}]

  //处理从excel读入的格式

  const arr=this.transExcel(结果)

  Console.log(转换为后的格式,arr)

  })

  3.4 日期处理函数:

  //将excel文件中的日期格式内容变回标准时间。

  //https://blog.csdn.net/qq_15054679/article/details/107712966

  导出函数formatExcelDate(number,format=/) {

  const time=新日期((数字-25567)* 24 * 3600000-5 * 60 * 1000-43 * 1000-24 * 3600000-8 * 3600000)

  time.setYear(time.getFullYear())

  const year=time.getFullYear()

  const month=time.getMonth() 1

   const date=time.getDate()

  if (format format.length===1) {

  返回年格式月格式日期

  }

  返回年份(第10个月?0 月:月)(日期10?“0”日期:日期)

  }

  

4.调接口,发请求,在页面中使用

  从“@/api/employees”导入{ importEmployee }

  导出默认值{

  名称:导入,

  方法:{

  异步handleSuccess({ results,header }) {

  尝试{

  Console.log(从当前excel文件中读取的内容是,结果)

  //结果:[{参赛日期:44502,姓名:xxxx}]

  //目标:

  //结果:[{timeOfEntry: 44502,用户名:xxxx}]

  const arr=this.transExcel(结果)

  Console.log(转换为后的格式,arr)

  //调用上传的接口,

  const RS=wait import employee(arr)

  Console.log(调用上传的接口,rs)

  //上传成功后,返回上一页

  这个。$router.back()

  这个。$message.success(操作成功)

  } catch (err) {

  这个。$message.error(err.message)

  }

  }

  }

  

5 总结:

  导入的功能和导出类似,但难点在于数据格式的转换。本文不做过多介绍,在另一篇导出文章中有详细解释。有兴趣可以去看看。我就跳到导出功能的实现。

  关于Vue导入Excel的功能这篇文章就到这里了。有关vue导入Excel的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: