从某个位置读取 CSV 文件并显示为 HTML 表

read csv file from a location and display as html table

本文关键字:显示 HTML 文件 CSV 位置 读取      更新时间:2023-09-26

有没有办法让HTML页面从特定目的地读取csv文件并将其显示为网页中的HTML表格?

我正在开发一个网页来显示已登录用户的状态。因此,HTML 页面必须自动读取 csv 文件并相应地将其显示在网页中,因为 csv 文件会定期更新。


编辑:

根据答案中的建议添加了代码,但浏览器中没有弹出任何内容

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>CSV Downloader</title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.js"></script>
<script>
    function arrayToTable(tableData) {
        var table = $('<table></table>');
        $(tableData).each(function (i, rowData) {
            var row = $('<tr></tr>');
            $(rowData).each(function (j, cellData) {
                row.append($('<td>'+cellData+'</td>'));
            });
            table.append(row);
        });
        return table;
    }
    $.ajax({
        type: "GET",
        url: "C:'Users'tim tom'Desktop'csvTOhtml'data.csv",
        success: function (data) {
            $('body').append(arrayToTable(Papa.parse(data).data));
        }
    });
</script>
</body>	

三步流程

您需要三个步骤:

1) 使用 Ajax 从服务器获取数据并将其转换为数组。你可以这样做,例如。使用以下 jQuery:

$.ajax({
    type: "GET",
    url: "data.csv",
    success: CSVToHTMLTable
});

2)获得CSV文件后,您需要对其进行解析。一个简单可靠的方法是使用像Papa Parse这样的库:

var data = Papa.parse(data).data;

3) 您需要定义一个函数来将数组转换为 HTML 表。以下是如何使用jQuery执行此操作:

function arrayToTable(tableData) {
    var table = $('<table></table>');
    $(tableData).each(function (i, rowData) {
        var row = $('<tr></tr>');
        $(rowData).each(function (j, cellData) {
            row.append($('<td>'+cellData+'</td>'));
        });
        table.append(row);
    });
    return table;
}
<小时 />

将所有内容放在一起

以下是将所有内容放在一起的方法:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.js"></script>
<script>
    function arrayToTable(tableData) {
        var table = $('<table></table>');
        $(tableData).each(function (i, rowData) {
            var row = $('<tr></tr>');
            $(rowData).each(function (j, cellData) {
                row.append($('<td>'+cellData+'</td>'));
            });
            table.append(row);
        });
        return table;
    }
    $.ajax({
        type: "GET",
        url: "http://localhost/test/data.csv",
        success: function (data) {
            $('body').append(arrayToTable(Papa.parse(data).data));
        }
    });
</script>