我正在尝试加载csv/txt
数据以加载到select
框。我尝试了this脚本,无法将数据加载到select
multiple
选择框
这是我改变的剧本
$("#upload").bind("click", function() {
var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;
if (regex.test($("#fileUpload").val().toLowerCase())) {
if (typeof(FileReader) != "undefined") {
var reader = new FileReader(),
sel = $("<select id='s'>"),
separator = ';',
rows,
rowLength;
reader.onload = function(e) {
rows = e.target.result.split(/[\r\n|\n]+/);
rowLength = rows.length;
for (var i = 0; i < rowLength; i++) {
var row = $("<option>"), cells = rows[i].split(separator), cellLength = cells.length, cell;
for (var j = 0; j < cellLength; j++) {
$(cell).val(cells[j]);
row.append(cell);
}
sel.append(row);
}
$("#dvCSV").html('');
$("#dvCSV").append(sel);
}
reader.readAsText($("#fileUpload")[0].files[0]);
} else {
alert("This browser does not support HTML5.");
}
} else {
alert("Please upload a valid CSV file.");
}
});
这会加载空白选择框。如何加载此值(option
和text
必须相同)
对此,我想跳过一行,如果任何一列是空白的
答案 0 :(得分:0)
实际上,如果您可以在服务器中进行设置,我认为使用Python及其CSV模块会更容易。
但是,使用JavaScript,您可以使用PapaParse并使用它进行迭代。
作为最后一个选项,请查看this answer
我发布的答案允许使用值分隔符。这是一种在CSV文件中包含逗号值的方法。
例如,这是一个随机的CSV行
USERNAME, PASSWORD
JOHN,"asd,ddd"
正如您所看到的,制作者在PASSWORD字段中使用了额外的逗号,因此使用引号来逃避它。
最后,为了这个目的,我强烈推荐使用Python或类似的脚本语言。使用JavaScript并不是最有效的方法。
对于代码,一旦你有了行,请务必撤消DELIMITER。
然后,您的代码将起作用(使用Python编写的示例)
for x in row: #going through each element of the row
if x != "":
myRowArray.add(row)