所以我正在编写一个模糊字符串比较脚本,我遇到了一些障碍。我将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模块读取和导出。任何想法都将不胜感激!:)
暂无答案!
目前还没有任何答案,快来回答吧!