Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将CSV文件转换为HTML表格_Javascript_Html_Csv - Fatal编程技术网

Javascript 如何将CSV文件转换为HTML表格

Javascript 如何将CSV文件转换为HTML表格,javascript,html,csv,Javascript,Html,Csv,我有一个包含以下内容的csv文件: 头1,头2,头3,头4,头5 值1\u 1、值2\u 1、值3\u 1、值4\u 1、值5\u 1 值1\u 2、值2\u 2、值3\u 2、值4\u 2、值5\u 2 我创建Javascript/HTML代码来提取该文件并显示内容 <html> <head> <title>show csv</title> </head> <body> <input type="f

我有一个包含以下内容的csv文件: 头1,头2,头3,头4,头5 值1\u 1、值2\u 1、值3\u 1、值4\u 1、值5\u 1 值1\u 2、值2\u 2、值3\u 2、值4\u 2、值5\u 2

我创建Javascript/HTML代码来提取该文件并显示内容

<html> 
<head> 
<title>show csv</title> 
</head> 
<body> 
    <input type="file" id="fileinput" multiple />
    <div id="result"></div>
    <script type="text/javascript">
      function readMultipleFiles(evt) {
        //Retrieve all the files from the FileList object
        var files = evt.target.files; 

        if (files) {
            for (var i=0, f; f=files[i]; i++) {
                  var r = new FileReader();
                r.onload = (function(f) {
                    return function(e) {
                        var contents = e.target.result;
                        var res = document.getElementById("result");
                        res.innerHTML = "Got the file<br>" 
                              +"name: " + f.name + "<br>"
                              +"type: " + f.type + "<br>"
                              +"size: " + f.size + " bytes</br>"
                              + "starts with: " + contents; 
                    };
                })(f);

                r.readAsText(f);
            }   
        } else {
              alert("Failed to load files"); 
        }
      }

          document.getElementById('fileinput').addEventListener('change',readMultipleFiles, false);
    </script>
</body> 
</html> 

显示csv
函数读取多文件(evt){
//从FileList对象检索所有文件
var files=evt.target.files;
如果(文件){
for(var i=0,f;f=files[i];i++){
var r=新文件读取器();
r、 onload=(函数(f){
返回函数(e){
var内容=e.target.result;
var res=document.getElementById(“结果”);
res.innerHTML=“获取文件
” +名称:“+f.name+”
” +类型:“+f.type+”
” +“大小:+f.size+”字节
” +“以:”+内容开头; }; })(f) ); r、 readAsText(f); } }否则{ 警报(“加载文件失败”); } } document.getElementById('fileinput')。addEventListener('change',readMultipleFiles,false);
输出如下所示:

问题:如何将内容或数据转换为数组并显示为html表


感谢您的帮助。

您可以将csv数据转换为数组,然后转换为html表格。我已将\n添加到您的新行中。当有新行时,请将\n添加到代码中


桌子{
边界塌陷:塌陷;
边框:2个黑色实心;
字体:12px无衬线;
}
运输署{
边框:1px黑色实心;
填充物:5px;
}
var数据='heading1,heading2,heading3,heading4,heading5\n值1\u 1,值2\u 1,值3\u 1,值4\u 1,值5\u 1\n值1\u 2,值2\u 2,值3\u 2,值4\u 2,值5\u 2';
变量行=data.split(“\n”),
输出=[],
我
对于(i=0;i
我发现卡皮拉·佩雷拉的答案非常有用。但是,由于
切片(0,-1)
的使用,每行的最后一个元素被裁剪。基于Perera的答案,在下面的示例中,我使用了
slice()

我还将第一行
行[0]
分离为标题行,并从1开始循环(csv不总是包含标题,但在示例中显式调用了标题)

最后,我在包装输出时添加了
tbody
标记,但这可能不是必需的

    <script type="text/javascript"charset="utf-8">
        var div = document.getElementById('container');
        var data = 'heading1,heading2,heading3,heading4,heading5\nvalue1_1,value2_1,value3_1,value4_1,value5_1\nvalue1_2,value2_2,value3_2,value4_2,value5_2';
        var lines = data.split("\n"), output = [], i;

        /* HEADERS */
        output.push("<tr><th>" 
            + lines[0].slice().split(",").join("</th><th>") 
            + "</th></tr>");

        for (i = 1; i < lines.length; i++)
            output.push("<tr><td>" 
                + lines[i].slice().split(",").join("</td><td>") 
                + "</td></tr>");

        output = "<table><tbody>" 
                    + output.join("") + "</tbody></table>";

        div.innerHTML = output;
    </script>

var div=document.getElementById('container');
var数据='heading1,heading2,heading3,heading4,heading5\n值1\u 1,值2\u 1,值3\u 1,值4\u 1,值5\u 1\n值1\u 2,值2\u 2,值3\u 2,值4\u 2,值5\u 2';
变量行=data.split(“\n”),输出=[],i;
/*标题*/
output.push(“”)
+行[0]。切片().split(“,”).join(“”)
+ "");
对于(i=1;i
您向我们展示了您的代码,但问题出在哪里?请阅读将值放入数组所需的全部操作:
var ari=values.split(“,”)从那里,你可以循环数值并做任何你想做的事情。请注意@PhilippSander提供的链接中的一个关键短语:“搜索…和研究”,因为这个问题回答了这个问题的大部分: