如何在nuxt vue js应用程序中从Excel文件导入数据

问题描述 投票:0回答:1

我在简单的 HTML 页面中有这个功能,并且工作正常

head () {
        return {
          script: [
            {
              hid: 'alasql',
              src: 'https://cdn.jsdelivr.net/alasql/0.3/alasql.min.js',
              defer: true,
              //callback: () => { this.isStripeLoaded = true } 
            },  
            {
              hid: 'ajax',
              src: 'https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.core.min.js',
              defer: true,
            
              
            }
          ]
        }
    },
  mounted(){

     function setPrice(nomer){
                    var printResult = function(result){ 
                            console.log(result[0].te)
                            // var sum= result[0].te
      
                        };
                        
        alasql ("SELECT te  FROM XLSX('/MDF_PANELS.XLS') WHERE f = "+nomer+"",[],
            function (data) {printResult(data);})                       
      }
}

但是当我移动到 nuxt 应用程序时,我收到错误:

Invalid HTML: could not find <table>
    at e (xlsx.core.min.js:16)

我的 xls 文件保存在“static”文件夹中。

我将很高兴获得任何帮助。

vue.js nuxt.js xlsx alasql
1个回答
1
投票

首先你需要正确导入alasql

import * as alasql from 'alasql';
alasql["private"].externalXlsxLib = require('xlsx');

其次使用读取和写入Excel和原始数据文件

的表单

这是我的代码:

<template>

</template>

<script>
import  alasql  from 'alasql';
alasql["private"].externalXlsxLib = require('xlsx');

export default {
    mounted(){      
 
 alasql.promise(
    "SELECT te  FROM XLSX('/MDF_PANELS.XLS') WHERE f = 13 ",[], ).then(function(results){
    console.log(results);
        }).catch(console.error);    
  }
    }
</script>

其中“te”是所需列的名称,“f”是所需行的名称

© www.soinside.com 2019 - 2024. All rights reserved.