javascript - 读取 xlsx 文件并搜索特定值
问题描述
我需要在 A 列的 xlsx 中搜索一个值并返回其他列中的值 [BG]
我有一个读取 xlsx 的函数:
用户数据.js
function personData (){
let XLSX = require('xlsx')
let workbook = XLSX.readFile(`${__dirname}/\person.xlsx`);
let sheet_name_list = workbook.SheetNames;
let xlData = XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]);
return xlData
}
module.exports = personData;
并通过以下方式返回数据
{ 编号:0, name: 'Bob', //我需要搜索这个属性并返回所有其他的 全名:'罗伯特肖恩', 号码:123456789, 团队:“它”, 个人资料:'所有', 文件:5672, 电子邮件:'robsh@gmail.com' }, { 编号:1, 名称:'让', full_name: '玛丽珍', 号码:987654321, 团队:“人力资源”, 个人资料:'销售', 文件:1285, 电子邮件:'mjean@gmail.com' } ]
现在我需要在该结果中搜索一个值并返回其他信息,例如:
用户.js
const usersData = require ('./userData')
let valueToSearch = 'Bob' //search for that value inside the name attribute
let personData = usersData(valueToSearch)
console.log(personData); //return Bob's data
谢谢!
解决方案
鉴于 中已存在数据userData
,您可以使用来查找具有匹配名称Array.find()
的对象 ( )。row
userData.find(o => o.name === valueToSearch);
如果找到这样的对象,您可以通过 提取其属性名称Object.keys()
,过滤掉不需要的属性并提取相关值,如下所示。
Object.keys(row)
.filter(k => k !== 'id' && k !== 'name')
.map(k => row[k])
.join(', ');
请查看下面的可运行代码片段。
const userData = [{
id: 0,
name: 'Bob', //I need to search for this attribute and return all others
full_name: 'Robert Shawn',
number: 123456789,
team: 'IT',
profile: 'ALL',
file: 5672,
email: 'robsh@gmail.com'
},
{
id: 1,
name: 'Jean',
full_name: 'Mary Jean',
number: 987654321,
team: 'HR',
profile: 'Sales',
file: 1285,
email: 'mjean@gmail.com'
}
];
const valueToSearch = 'Bob';
const row = userData.find(o => o.name === valueToSearch);
if (row) {
const values = Object.keys(row)
.filter(k => k !== 'id' && k !== 'name')
.map(k => row[k])
.join(', ');
console.log('found: ' + values)
} else {
console.log('not found');
}
推荐阅读
- powershell - 使用 Windows 10 PowerShell 批量调整目录中所有图像的大小
- php - 在for循环中如何使用php中的所有先前数组检查当前数组值
- javascript - 如何调用使用状态(由另一个函数设置)并更新状态的函数
- vba - 在 Word 表格中查找单元格中特定字符串的宏并将 x 单元格向左移动,检查 isumeric 然后在同一列中的向下 x 单元格上设置排版
- google-cloud-platform - GKE:kubernetes 节点不需要 kubectl 包
- sql - 如何将一行剪切为开始时间和结束时间以多天花费小时行
- java - 我如何调用方法'func',实现这个对象的含义是什么?
- selenium - org.openqa.selenium.SessionNotCreatedException:无法创建新服务:ChromeDriverService
- ruby - Shopify 脚本 — 特定标签的批量购买折扣
- reactjs - React Bootstrap - id 未在 InputGroup.Text 中呈现