如何在vue项目中直接读取本地excel文件中的数据

1.安装并在使用的界面引入XLSX

npm install xlsx
//demo.vue界面
<script>
import XLSX from 'xlsx'
</script>

2.获取本地文件信息,因为xlsx是后端访问的,所以需要用aixos请求去得到获取后的数据

其中url是本地文件路径,放在public中 url:/demo.xlsx

readExcelFile(url) {
      Axios.get(url,{responseType:'arraybuffer'})
      .then((res)=>{
        let data = new Uint8Array(res.data)
        let wb = XLSX.read(data, {type:"array"})
        let sheets = wb.Sheets // 获取文档数据
        this.content = this.transformSheets(sheets)
      }).catch( err =>{
        this.err = err
      })
    },
transformSheets(sheets){
      let content1 = []
      let tmplist = []
      for (let key in sheets){
        //读出来的workbook数据很难读,转换为json格式,参考https://github.com/SheetJS/js-xlsx#utility-functions
        tmplist.push(XLSX.utils.sheet_to_json(sheets[key]).length)
        content1.push(XLSX.utils.sheet_to_json(sheets[key]))
      }
      console.log(tmplist)
      console.log(content1)
    }

Vue应用中,要通过文件流(File Stream)从本地读取Excel文件,你可以使用第三方库如`xlsx`或`js-xlsx`,它们提供了处理Excel文件的功能。以下是一个基本的步骤: 1. 首先,确保在项目中安装必要的库。如果你还没有安装,可以通过npm或yarn进行安装: ```bash npm install xlsx // 或者 yarn add xlsx ``` 2. 创建一个方法,使用HTML5的`FileReader` API读取文件流。当用户选择文件后,这个方法会被触发。 ```javascript <template> <!-- ... --> <input type="file" @change="uploadExcelFile" /> </template> <script> import XLSX from 'xlsx'; export default { methods: { uploadExcelFile(e) { const file = e.target.files[0]; if (file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type === 'application/vnd.ms-excel') { // 检查是否为Excel文件 const reader = new FileReader(); reader.onload = (event) => { try { const workbook = XLSX.read(event.target.result, {type: 'binary'}); // 这里你可以操作 workbook 对象,例如获取数据或解析单元格 const sheetNameList = workbook.SheetNames; console.log('Sheet names:', sheetNameList); } catch (error) { console.error('Error reading Excel file:', error); } }; reader.readAsArrayBuffer(file); // 使用ArrayBuffer读取文件 } else { alert('Please select an Excel (.xlsx or .xls) file.'); } }, }, }; </script> ``` 在这个例子中,我们首先检查文件类型是否是Excel,然后使用`FileReader`读取文件到`ArrayBuffer`,接着传递给`XLSX.read`函数转换为JS对象以便进一步操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值