Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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 以HTML显示CSV文件_Javascript_Html_Csv - Fatal编程技术网

Javascript 以HTML显示CSV文件

Javascript 以HTML显示CSV文件,javascript,html,csv,Javascript,Html,Csv,我正在尝试将带有标题的本地CSV文件导入本地HTML文件,然后该文件将在浏览器中显示为表格 我学习HTMLand JavaScript的时间不长,所以我对导入和转换不太了解。我需要的是一些建议,或者可能是一个描述我需要的函数类型的基本脚本。欢迎解释和建议 这是csv文件的一个示例: heading1,heading2,heading3,heading4,heading5 value1_1,value1_2,value1_3,value1_4,value1_5 value2

我正在尝试将带有标题的本地CSV文件导入本地HTML文件,然后该文件将在浏览器中显示为表格

我学习HTMLand JavaScript的时间不长,所以我对导入和转换不太了解。我需要的是一些建议,或者可能是一个描述我需要的函数类型的基本脚本。欢迎解释和建议

这是csv文件的一个示例:

    heading1,heading2,heading3,heading4,heading5
    value1_1,value1_2,value1_3,value1_4,value1_5
    value2_1,value2_2,value2_3,value2_4,value2_5
    value3_1,value3_2,value3_3,value3_4,value3_5
    value4_1,value4_2,value4_3,value4_4,value4_5
    value5_1,value5_2,value5_3,value5_4,value5_5
这就是我想要显示它的方式:


我认为没有一个简单的解决方案。坚持使用客户端JavaScript使得这比在服务器端处理和简单地提供HTML更困难

首先需要使用JavaScript从服务器获取文件,最简单的方法是使用jQuery库。接下来,您需要获取数据并在现有文档中构造HTML,同样,jQuery将为您简化这一过程

如果您还在学习,我建议跳过第一位,简单地创建一个包含已有数据的JavaScript变量。通过这种方式,您可以编写代码来构建表,使其正常工作,然后重新考虑如何使用AJAX从服务器获取表

或者,可以考虑使用服务器端语言(如PHP),在将数据交付到浏览器之前将其合并到页面中。在不了解更多细节的情况下,这似乎是更符合逻辑的解决方案。

您需要使用javascript(jquery)或php 这是用php打开并在表中获取值的代码

<table>
<tr>
    <td>Header 1</td>
    <td>Header 2</td>
</tr>
<?php
    $fp = fopen ( "file.csv" , "r" );
    while (( $data = fgetcsv ( $fp , 1000 , "," )) !== FALSE ) {
        $i = 0;
        echo "<tr>";
        foreach($data as $row) {
           echo "<td>" . $row . "</td>";
           $i++ ;
        }
        echo "/<tr>";
    }
    fclose ( $fp );
    ?>
</table>

标题1
标题2

获取外部文件。

为此,必须使用
xmlHttpRequest
。将jQuery(包括jQuery库)简化为

您需要在本地服务器(如Apache)中运行HTML文件, 像Chrome这样的浏览器不允许
xmlHttp
用于
file://
URL

使用成功回调来处理数据

parseTxt
是读取并传递文件内容的函数。然后,您可以在
parseTxt
中编写代码,将文本作为字符串处理

function parseTxt(text){
  var rows=text.split('\n');

  //for each row
  //cols=rows[i].split(',');
}
我想这足够让你开始了


您甚至可以使用
iframes
通过
shadowwizard
尝试回答上述问题


原始
XMLHttpRequest
可以在不使用jQuery的情况下生成,如图所示


$(函数(){
$('CSVTable').CSVToTable('your#csv.csv');
});

您可以使用jquery.csvToTable.js以html显示csv文件

我使用PHP在服务器端解析csv文件,然后将输出格式化为html。在此过程中,它将CSV列中的唯一值转换为唯一的筛选值,以优化结果集。

对于local,您是指服务器上的CSV,对吗?不,我是指与html文件位于同一文件夹中的简单CSV文本文件,我仍在学习,但我看过的所有地方都没有真正解释它们做了什么,以及如何访问这些数据,您可以找到从浏览器访问本地文件的示例。稍后您需要编写用于拆分和创建表的代码。嗯,该页面相当不错,似乎有很多方法可以做到这一点,但它们都很不错longwinded@davidkonrad这是正确的。在处理本地文件时,您的计算机就是“服务器”,即使它没有部署到任何地方。无论它是在服务器上,还是仅仅是您机器上文件夹中的原始HTML文件,CSV就在旁边都是无关紧要的(除了访问所述CSV的URL)。啊,我明白了,难怪我找不到简单的解决方案。这种类型的所有导入文件都是这样吗?并不是这种类型的文件造成了困难。这是因为CSV文件在服务器上,但JavaScript将在本地计算机上运行。无论文件的格式如何,都需要AJAX从服务器获取文件。
function parseTxt(text){
  var rows=text.split('\n');

  //for each row
  //cols=rows[i].split(',');
}
<div id="CSVTable"></div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//jquerycsvtotable.googlecode.com/files/jquery.csvToTable.js"></script>

<script>
$(function() {
  $('#CSVTable').CSVToTable('your_csv.csv');
});
</script>