• 在 Javascript 中将 CSV 显示为表格(简单示例)


    欢迎阅读有关如何读取 CSV 文件并将其显示在 Javascript 中的 HTML 表格中的教程。需要在将 CSV 上传到服务器之前将其显示为 HTML 表格?或者服务器上有一个 CSV 文件需要在 HTML 表格中显示?好吧,使用现代 Javascript 是可能的——请继续阅读示例!

    ⓘ 我在本教程开始时包含了一个包含所有源代码的 zip 文件,因此您不必复制粘贴所有内容……或者如果您只是想直接进入。

    示例代码下载

    单击此处下载所有示例源代码,我已在 MIT 许可下发布它,因此请随意在其上构建或在您自己的项目中使用它。

    CSV 到 HTML 表格

    好的,现在让我们来看看如何读取 CSV 文件并将其显示在 Javascript 中的 HTML 表格中的示例。

     

    0) 虚拟 CSV

    0-dummy.csv
    1. Jo Doe,jo@doe.com,465785
    2. Joa Doe,joa@doe.com,123456
    3. Job Doe,job@doe.com,234567
    4. Joe Doe,joe@doe.com,345678
    5. Jog Doe,jog@doe.com,578456
    6. Joh Doe,joh@doe.com,378945
    7. Joi Doe,joi@doe.com,456789
    8. Jon Doe,jon@doe.com,987654
    9. Jor Doe,jor@doe.com,754642
    10. Joy Doe,joy@doe.com,124578

    首先,让我们从虚拟 CSV 文件开始。对于不知道 CSV(逗号分隔值)如何工作的人:

    • CSV 文件本质上是文本文件。
    • 我们使用换行符\r\n来指示新行。
    • 我们使用逗号,来表示一个新列。

     

    1) 从文件选择器中读取 CSV

    1A) HTML

    1a-read-csv.html
    1. <!-- (A) PICK CSV FILE -->
    2. <input type="file" accept=".csv" id="demoPick"/>
    3. <!-- (B) GENERATE HTML TABLE HERE -->
    4. <table id="demoTable"></table>

    对于第一个示例,我们将从 an 中选择一个 CSV<input type="file">并将其显示在<table id="demoTable">.

     

     

    1B) JAVASCRIPT

    1b-读取-csv.js
    1. // (A) GET HTML FILE PICKER & TABLE
    2. let picker = document.getElementById("demoPick"),
    3. table = document.getElementById("demoTable");
    4. // (B) ON SELECTING CSV FILE
    5. picker.onchange = () => {
    6. // (B1) REMOVE OLD TABLE ROWS
    7. table.innerHTML = "";
    8. // (B2) READ CSV & GENERATE TABLE
    9. let reader = new FileReader();
    10. reader.addEventListener("loadend", () => {
    11. let csv = reader.result.split("\r\n");
    12. for (let row of csv) {
    13. let tr = table.insertRow();
    14. for (let col of row.split(",")) {
    15. let td = tr.insertCell();
    16. td.innerHTML = col;
    17. }
    18. }
    19. });
    20. reader.readAsText(picker.files[0]);
    21. };

    不打算逐行解释,但重要的部分是:

    • reader.readAsText(SELECTED FILE)将选定的 CSV 文件读取为文本。
    • let csv = reader.result.split("\r\n")还记得 CSV 文件\r\n用来指示新行吗?我们只是将整个“CSV 文本”块拆分为行。
    • for (let row of csv) { for (let col of row.split(","))对于每一行,我们进一步分解列并绘制表格行/单元格。

    是的,没错。无需将 CSV 文件上传到服务器,现代 Javascript 能够读取文件。

     

     

    2) AJAX 从服务器获取 CSV

    2A) HTML

    2a-ajax-csv.html
    1. <!-- (A) GENERATE HTML TABLE HERE -->
    2. <table id="demoTable"></table>

    如果 CSV 文件在服务器上,我们也可以使用 AJAX fetch 来生成表。

     

     

    2B) JAVASCRIPT

    2b-ajax-csv.js
    1. // (A) GET HTML TABLE
    2. let table = document.getElementById("demoTable");
    3. // (B) AJAX FETCH CSV FILE
    4. fetch("0-dummy.csv")
    5. .then((res) => { return res.text(); })
    6. .then((csv) => {
    7. // (B1) REMOVE OLD TABLE ROWS
    8. table.innerHTML = "";
    9. // (B2) GENERATE TABLE
    10. csv = csv.split("\r\n");
    11. for (let row of csv) {
    12. let tr = table.insertRow();
    13. for (let col of row.split(",")) {
    14. let td = tr.insertCell();
    15. td.innerHTML = col;
    16. }
    17. }
    18. });

    是的,这与文件选择器示例几乎相同。除了我们现在fetch(CSV FILE)用来从服务器获取数据。

     

    有用的信息和链接

    这就是本教程的全部内容,这里有一小部分介绍了一些可能对您有用的附加内容和链接。

     

    性能问题和限制

    在撰写本文时,似乎没有办法逐行读取 CSV 文件。因此,如果您正在处理大量 CSV 文件,请当心——这可能会导致“内存不足”问题和性能问题。

     

  • 相关阅读:
    常用PC,移动浏览器User-Agent大全
    ArcGIS操作(四)
    springboot萌宠宠物网店的开发与设计毕业设计源码011042
    指针升级版!!!我在这里传授艰深道法,诸位道友可愿与我一同修行?
    Tailor:一键式视频智能处理,轻松打造精彩视频!
    MyBatis Like 拼接
    2.策略模式
    DBSCAN 算法【python,机器学习,算法】
    Redis
    信息安全服务资质认证CCRC证书‖中国网络安全审查技术与认证中心
  • 原文地址:https://blog.csdn.net/allway2/article/details/125422837