excel - 使用 vue.js 从 xlsx 文件中获取列数据
问题描述
我能够读取 Excel 文件,我需要逐列读取 xls 文件,读取每一列中的数据并将其转换为 JSON。
如何按col读取xls文件col?
使用 vuejs 从 xlsx 文件中获取第一列数据时遇到问题
如何使用Vue js从xlsx文件中获取特定的列数据,任何人/?我是 Vue js 的新手。这里,是我使用的代码。
<template>
<div>
<p v-if="err!==''">{{err}}</p> <!-- Used to display errors -->
<table v-if="content!==''"> <!-- Set center,Do not display if no content is obtained -->
<!-- <tr>
<th v-for="h in content[0]" :key="h.id">{{h}}</th>
</tr> Cycle read data and display -->
<tr v-for="row in content.slice(0,)" :key=row.id>
<td v-for="item in row" :key=item.id>{{item}}</td>
</tr>
</table>
</div>
</template>
<script>
import axios from 'axios'
import XLSX from 'xlsx'
export default {
name: "App",
data(){
return {
content: '', //Initialization data
err: ''
}
},
created() {
var url = "/filw.csv" //Files placed in the public directory can be accessed directly
axios.get(url, {responseType:'arraybuffer'})
.then((res) => {
var data = new Uint8Array(res.data)
var wb = XLSX.read(data, {type:"array"})
const firstSheetName = wb.SheetNames[0]
const sheets = wb.Sheets[firstSheetName]
// const results = XLSX.utils.sheet_to_json(sheets)
// this.content = results
this.content = this.getColumnData(sheets)
}).catch( err =>{
this.err = err
})
},
methods: {
getColumnData(sheet) {
const ColData = []
const range = XLSX.utils.decode_range(sheet['!refs'])
let C
const R = range.s.r
/* start in the first row */
for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
const cell = sheet[XLSX.utils.encode_col({ c: C, r: R })]
ColData.push(cell)
}
return ColData
}
}
}
</script>
<style>
</style>
任何知道的人,将不胜感激;-)
解决方案
您可以将数据转换为 json,然后读取结果,如下所示:
created() {
var url = "/test.xlsx"
axios.get(url, {responseType:'arraybuffer'})
.then((res) => {
var data = new Uint8Array(res.data)
var wb = XLSX.read(data, {type:"array"})
const firstSheetName = wb.SheetNames[0]
const first_worksheet = wb.Sheets[firstSheetName]
// convert to json
const file_data = XLSX.utils.sheet_to_json(first_worksheet, { header: 1 });
// first column first row value
console.log(file_data[0][0])
})
.catch( err =>{this.err = err})
},
推荐阅读
- c - 如何通过 C 编程打开终端中显示的链接?
- c# - MySql不会连接到datagrid wpf
- sql-server - 强制 SQL Server 关闭 DML 查询的结果集
- javascript - 在 gatsby 中使用不同的模板创建页面
- java - 如何将生产者类外部的值添加到生产者线程(阻塞队列实现)
- c++ - 为什么我的构造函数没有像它应该的那样初始化它的超类属性?
- arrays - 如何将 URL 数组作为函数的参数传递
- javascript - iOS Safari上的`缓存中不存在元素`错误
- c++ - 如何从(w)字符串中获取 unicode char 的 utf-8 int 值?
- c# - UWP FileStream 抛出“访问路径被拒绝”。