Vue直接读取服务器文件并显示

这里我们的想法是点开页面,自动读取服务器某个文件,然后在文本框显示出来

HTML代码

<textarea id = "div1"  style="width:1650px; height:740px" readonly>
</textarea>

JS代码

这里试用了两种方法都可以

1.ajax

    mounted() { 
        document.getElementById('div1').innerHTML = '读取中...';
        $(document).ready(function(){
	        $.ajax({async: true, url:"dhcpdlog",success:function(result){
                $("#div1").html(result);
		    }});
	    });
    }

2.load

   mounted() {
    // this.getInfo()	
    document.getElementById('div1').innerHTML = '读取中...';
    $(document).ready(function(){
    $("#div1").load("/arplog");
    });
  }

然后效果如图所示

读取中
在这里插入图片描述
读取完毕
在这里插入图片描述
本来是采用load的方法,后来发现在读取文档的过程中,光标会变成白色小手,然后点击其他事件不会立即触发,直到读取完毕才会执行。于是试着采取能异步操作的ajax方法,但结果还是出现这种情况。然后看Network发现这里读取数据用的是get方法,而且数据量较大约5w行,所以该原子操作必须一次性执行完。

在这里插入图片描述

要在Vue中预览服务器上的Excel文件,你可以使用`xlsx`库来解析Excel文件,并使用`FileReader`来读取文件内容。然后,你可以将解析后的数据显示Vue组件中。以下是一个示例代码: ```vue <template> <div> <input type="file" @change="handleFileUpload" accept=".xlsx"> <table v-if="data.length > 0"> <thead> <tr> <th v-for="header in data[0]">{{ header }}</th> </tr> </thead> <tbody> <tr v-for="(row, index) in data" :key="index"> <td v-for="cell in row">{{ cell }}</td> </tr> </tbody> </table> </div> </template> <script> import XLSX from 'xlsx'; export default { data() { return { data: [], }; }, methods: { handleFileUpload(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = (e) => { const data = new Uint8Array(e.target.result); const workbook = XLSX.read(data, { type: 'array' }); const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); this.data = jsonData; }; reader.readAsArrayBuffer(file); }, }, }; </script> ``` 在上述代码中,我们使用`xlsx`库来解析Excel文件。当用户选择文件时,`handleFileUpload`方法会被调用。在该方法中,我们使用`FileReader`来读取文件内容,并将其转换为`Uint8Array`。然后,我们使用`XLSX`库来解析Excel文件,并将其转换为JSON格式的数据。最后,我们将解析后的数据存储在`data`数组中,并在Vue模板中进行展示。 请注意,上述示例使用了xlsx库,你需要在项目中安装该库:`npm install xlsx`。 希望这可以帮助到你!如果你有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值