我想知道如何从多个CSV文件创建HTML数据表。
例如,我有一个包含名为"Data_Source1-Memory.csv", "Data_Source1-CPU.csv", Data_Source1-Disk.csv", Data_Source2-Memory.csv" and "Data_Source2-CPU.csv"
的CSV文件的文件夹。
这些文件是根据“Data_Source1”或“Data_Source2”动态创建的。因此,每次它不一定有内存或CPU或磁盘CSV文件。
有没有办法可以循环浏览“Data_Source1”的这些csv文件,并将它们显示在HTML表格中one table for Memory, one table for Disk and one table for CPU
)。然后在“Data_Source2”文件夹中循环,并将这些csv显示为HTML表格。
到目前为止,我所能找到的只是jQuery plugins
,据我所知,只能测试静态csv文件或数据(例如DataTables)。
我也知道存在哪些文件,所以我不必搜索是否有文件,我知道我需要哪些文件。我只是不知道如何遍历不同的csv文件来生成每个csv文件的表。
非常感谢任何帮助或建议。
答案 0 :(得分:0)
只要服务器目录启用了目录列表,并且您从域中运行脚本,那么通过从某个目录收集某些文件的列表应该没有问题。只需使用$.ajax
并从检索到的目录列表HTML页面中解析文件名。以下适用于标准apache:
var fileMask = '-CPU', //signature of the files
fileExt = 'csv'; //file extension
$.ajax({
url: 'path/to/directory/',
success: function (data) {
var file, files = [];
$('a[href]', data).each(function(i, a) {
file = $(a).attr('href');
if (~file.indexOf(fileMask) && file.match(/[^.]+$/) == fileExt) {
files.push(file);
}
})
}
})
结果是包含
的files
数组
['Data_Source1-CPU.csv', 'Data_Source2-CPU.csv', 'Data_Source3-CPU.csv']
如果您希望文件列表按数字顺序排列,则可以使用files.sort()
。现在,使用files
作为自动创建的dataTable的基础应该是一个nobrainer - 请参阅Create dataTable column definition from uploaded csv data - 循环到files
并插入每个CSV的数据而不是单个文件,如回答。