Javascript 如何将制表符分隔格式的文本文件中的内容显示为html表格
我有一个文本文件,其中的数据看起来像一个表,因为它是以制表符分隔的格式 如何以html表格的形式仅显示文本文件中的几个值 这是我的文本文件的外观:Javascript 如何将制表符分隔格式的文本文件中的内容显示为html表格,javascript,php,html,html-table,Javascript,Php,Html,Html Table,我有一个文本文件,其中的数据看起来像一个表,因为它是以制表符分隔的格式 如何以html表格的形式仅显示文本文件中的几个值 这是我的文本文件的外观: @ RUNNO TRNO R# O# C# CR MODEL... TNAM..................... FNAM.... WSTA.... SOIL_ID... SDAT PDAT EDAT ADAT MDAT HDAT DWAP CWAM HWAM HWAH BW
@ RUNNO TRNO R# O# C# CR MODEL... TNAM..................... FNAM.... WSTA.... SOIL_ID... SDAT PDAT EDAT ADAT MDAT HDAT DWAP CWAM HWAM HWAH BWAH PWAM HWUM H#AM H#UM HIAM LAIX IR#M IRCM PRCM ETCM EPCM ESCM ROCM DRCM SWXM NI#M NICM NFXM NUCM NLCM NIAM CNAM GNAM PI#M PICM PUPC SPAM KI#M KICM KUPC SKAM RECM ONTAM ONAM OPTAM OPAM OCTAM OCAM DMPPM DMPEM DMPTM DMPIM YPPM YPEM YPTM YPIM DPNAM DPNUM YPNAM YPNUM NDCH TMAXA TMINA SRADA DAYLA CO2A PRCP ETCP ESCP EPCP
1 1 1 0 0 WH CSCER046 DRYLAND - 0 KG N/HA KSAS0001 KSAS8101 IBWH980018 1981279 1981289 1981294 1982141 1982174 1982174 46 7615 2848 2848 0 3308 0.0250 11371 22.0 0.374 2.0 0 0 600 422 188 234 12 115 141 1 0 -99 76 127 54 67 54 -99 -99 -99 -99 -99 -99 -99 -99 0 7842 7841 0 0 78645 78603 13.1 18.8 40.5 -99 4.9 7.0 15.1 -99 -99 100.6 -99 37.6 245 13.1 1.2 12.4 12.6 340.7 579.8 405.2 -99 -99
2 2 1 0 0 WH CSCER046 DRYLAND - 60 KG N/HA KSAS0001 KSAS8101 IBWH980018 1981279 1981289 1981294 1982141 1982174 1982174 46 10018 4150 4150 0 4656 0.0288 14411 23.6 0.414 2.5 0 0 600 431 212 219 12 110 139 1 60 -99 105 132 78 94 79 -99 -99 -99 -99 -99 -99 -99 -99 0 7842 7841 0 0 78652 78608 17.3 24.2 47.3 -99 7.2 10.0 19.6 -99 167.0 95.6 69.2 39.6 245 13.1 1.2 12.4 12.6 340.7 579.8 413.4 -99 -99
3 3 1 0 0 WH CSCER046 DRYLAND - 180 KG N/HA SP KSAS0001 KSAS8101
我只想在html表格中显示TRNO、Model、FNAM、WSTA。提供的数据看起来像Ascii表格,而不是选项卡分隔的值。我添加了两种解决方案 Ascii表的解决方案-
// Get all keys from Header Row
var lines = asciiTable.split('\n');
var regexPattern = /\S+\s*/g;
var headers = lines[0].match(regexPattern);
// fetch individual values (Also filter based on allowed keys)
var allowedKeys = ["TRNO", "MODEL...", "FNAM....", "WSTA...."];
for (i = 1; i < lines.length; i++) {
start = 0;
value = "";
valueArray = [];
headers.forEach(function(key) {
if (allowedKeys.includes(key.trim())) {
value = lines[i].slice(start, start + key.length);
valueArray.push(value.trim());
}
start += key.length;
});
rows.push(valueArray);
}
// generate html
var html = "<table border='1|1'>";
Object.keys(results.data[0]).forEach(function(key) {
html += "<th>" + key + "</th>";
});
results.data.forEach(function(row) {
html += "<tr>";
Object.keys(row).forEach(function(key) {
html += "<td>" + row[key] + "</td>";
});
html += "</tr>";
});
html += "</table>";
$('body').append(html);
//生成html
var html=“”;
Object.key(results.data[0]).forEach(函数(key){
html+=“”+键+“”;
});
results.data.forEach(函数(行){
html+=“”;
Object.keys(行).forEach(函数(键){
html++=“行[键]+”;
});
html+=“”;
});
html+=“”;
$('body').append(html);
提供的数据看起来像一个Ascii表,而不是一个选项卡分隔的值。我添加了两种解决方案 Ascii表的解决方案-
// Get all keys from Header Row
var lines = asciiTable.split('\n');
var regexPattern = /\S+\s*/g;
var headers = lines[0].match(regexPattern);
// fetch individual values (Also filter based on allowed keys)
var allowedKeys = ["TRNO", "MODEL...", "FNAM....", "WSTA...."];
for (i = 1; i < lines.length; i++) {
start = 0;
value = "";
valueArray = [];
headers.forEach(function(key) {
if (allowedKeys.includes(key.trim())) {
value = lines[i].slice(start, start + key.length);
valueArray.push(value.trim());
}
start += key.length;
});
rows.push(valueArray);
}
// generate html
var html = "<table border='1|1'>";
Object.keys(results.data[0]).forEach(function(key) {
html += "<th>" + key + "</th>";
});
results.data.forEach(function(row) {
html += "<tr>";
Object.keys(row).forEach(function(key) {
html += "<td>" + row[key] + "</td>";
});
html += "</tr>";
});
html += "</table>";
$('body').append(html);
//生成html
var html=“”;
Object.key(results.data[0]).forEach(函数(key){
html+=“”+键+“”;
});
results.data.forEach(函数(行){
html+=“”;
Object.keys(行).forEach(函数(键){
html++=“行[键]+”;
});
html+=“”;
});
html+=“”;
$('body').append(html);
发布您已经尝试过的代码。您将需要跳过第一条记录,然后在此之后解析每条记录以提取所需的数据。然后,我将数据输入一个Handlebar(或等效的)模板,以生成适用的html。最好尝试解决这些不同的步骤,然后在遇到问题时将问题与尝试一起发布。这似乎更像是一个标签分隔的值,而不是一个标签分隔的值。在您尝试的代码之后,您需要跳过第一条记录,然后解析每条记录,以提取所需的数据。然后,我将数据输入一个Handlebar(或等效的)模板,以生成适用的html。最好尝试解决这些不同的步骤,然后在遇到问题时尝试发布您的问题。这看起来更像是一个标签,而不是一个单独的值
// generate html
var html = "<table border='1|1'>";
Object.keys(results.data[0]).forEach(function(key) {
html += "<th>" + key + "</th>";
});
results.data.forEach(function(row) {
html += "<tr>";
Object.keys(row).forEach(function(key) {
html += "<td>" + row[key] + "</td>";
});
html += "</tr>";
});
html += "</table>";
$('body').append(html);