在node.js中使用sheetjs(js xlsx)比较两个字符串列表

hvvq6cgz  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(248)

所以我正在编写一个模糊字符串比较脚本,我遇到了一些障碍。我将xlsx模块导入到我的代码中,并使用它读取一个包含我想要比较的两个列表的xl文件。我能够将数据放入json对象,这很好。

const xlsx = require("xlsx");
const fuzz = require('fuzzball');

//Data Import
var wb = xlsx.readFile("C:/Users/me/temp/Compare University Names.xlsx");
var ws = wb.Sheets["Univ Names"];
var data = xlsx.utils.sheet_to_json(ws);

然而,我经常遇到的问题是,当我试图比较这两个字符串时。

sortedGov = [];
sortedDb = [];

for(let Outer = 0; Outer < 957; Outer++)
{
    for(let Inner = 0; Inner < data.length; Inner++)
    {
        if (fuzz.token_sort_ratio(data[Outer].univ_name_db, data[Inner].univ_name_gov) >= 85)
        {
            sortedGov.push(data[Inner].univ_name_gov);
            sortedDb.push(data[Outer].univ_name_db);
            break;
        }
    }
}

//JSONify the arrays with the new data
var jsonSortedDb = JSON.parse(JSON.stringify(sortedDb));

//Create the new workbook
var newWB = xlsx.utils.book_new();
var newWS = xlsx.utils.json_to_sheet(sortedDb);
xlsx.utils.book_append_sheet(newWB, newWS, "New Data");

//Create the new file
xlsx.writeFile(newWB, "Sorted Univ Names.xlsx");

一切正常运行,但当我将sorteddb json对象写入excel文件时,字符串被拼接成单个字符,新excel文件中的每个单元格都使用单个字符。我的直觉告诉我for循环中有一些东西不起作用,或者我可能不知道如何将数组操作回正确的格式,以便xlsx模块读取和导出。任何想法都将不胜感激!:)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题