在 JavaScript 中,你可以使用第三方库,如 PapaParse,来解析 CSV 文件并对基于空单元格的字段进行分组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSV Grouping</title>
<script src="https://cdn.jsdelivr.net/npm/papaparse@5.3.0/papaparse.min.js"></script>
</head>
<body>
<input type="file" id="csvFileInput">
<script>
document.getElementById('csvFileInput').addEventListener('change', function(event) {
const file = event.target.files[0];
Papa.parse(file, {
header: true,
complete: function(results) {
const groupedData = groupByEmptyCells(results.data);
console.log(groupedData);
}
});
});
function groupByEmptyCells(data) {
const groups = {};
data.forEach(row => {
let groupKey = '';
Object.values(row).forEach(cell => {
if (cell === '') {
groupKey += 'empty_';
} else {
groupKey += 'filled_';
}
});
if (!groups[groupKey]) {
groups[groupKey] = [];
}
groups[groupKey].push(row);
});
return groups;
}
</script>
</body>
</html>
在这个示例中,我们首先引入了 PapaParse 库。然后,我们在文件输入元素上添加了一个事件监听器,当用户选择一个 CSV 文件时,会触发这个事件。
Papa.parse 函数用于解析 CSV 文件。我们设置了 header 选项为 true,以便将 CSV 文件的第一行作为表头。当解析完成时,complete
回调函数会被调用。
在 complete
回调函数中,我们调用 groupByEmptyCells
函数对解析后的数据进行分组。这个函数遍历每一行数据,根据单元格是否为空来生成一个组键。然后,我们将具有相同组键的行添加到相应的分组中。
最后,我们将分组后的数据输出到控制台。你可以根据需要对数据进行进一步处理,例如显示在页面上或导出为新的 CSV 文件。
领取专属 10元无门槛券
手把手带您无忧上云