javascript - JavaScript CSV 读取行和列并存储在变量中
问题描述
我有一个非常简单的要求,但无法弄清楚如何去做。下面的 Javascript 代码读取一个 CSV 文件并创建一个 HTML 表。我的 CSV 中有以下数据:
Type, Item, Value, Dec, Figure
SUM,ThisItem,ThisValue,2,4
SUM,ThisItem1,ThisValue1,4,5
RCT,ThisItem1,ThisValue1,6,7
如何在下面的代码中插入代码或行,以帮助我将“Type”列值存储在变量中,将“Item”列值存储在变量中等等。例如,如果 Type=="SUM" 然后采取一些行动(例如发送数据或完整的行到表)。我通过添加一些逻辑尝试了几次,但无济于事。
function Upload() {
const columns = [0,1,2,3,4] // represents allowed column 1 and 3 in index form
var fileUpload = document.getElementById("fileUpload");
var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;
if (regex.test(fileUpload.value.toLowerCase())) {
if (typeof (FileReader) != "undefined") {
var reader = new FileReader();
reader.onload = function (e) {
var table = document.createElement("table");
var rows = e.target.result.split("\n");
for (var i = 0; i < rows.length; i++) { var cells = rows[i].split(","); if (cells.length > 1) {
var row = table.insertRow(-1);
for (var j = 0; j < cells.length; j++) {
// ignore columns that are not allowed
if (!columns.includes(j)) {
continue
}
var cell = row.insertCell(-1);
cell.innerHTML = cells[j];
}
}
}
var dvCSV = document.getElementById("dvCSV");
dvCSV.innerHTML = "";
dvCSV.appendChild(table);
}
reader.readAsText(fileUpload.files[0]);
} else {
alert("This browser does not support HTML5.");
}
} else {
alert("Please upload a valid CSV file.");
}
}
解决方案
cells[j]
是您的 CSV 文件中的文本内容,在每次迭代时使用条件来检查您要查找的值是否匹配,如果匹配,则定义您的变量并完成您的行。
推荐阅读
- mysql - Mysql for Excel - BUG - 显示错误的参数
- python - Python Selenium - 使用在另一个文件中启动的相同驱动程序实例
- html - 我想显示 HTML 页面而不是显示图像。但是代码试图错误地打开图像
- statistics - 线性回归中的归一化 - 全部与仅 1 个变量
- react-native - ScrollView 中的有界高度是多少?
- python - 崇高文本python错误
- amazon-web-services - AWS ElastiCache for Redis Engine CPU Utilization 指标,如何解释?
- react-native - 反应导航v2,导航功能不在标题道具中
- spring-boot - 如何从spring boot api获取角度6的标题细节
- vue.js - [Vue 警告]:无法挂载组件:未定义模板或渲染函数?