在线预览csv文件

一、 所需插件

注意: 第一、二点处的示例,是vue2项目中使用的情况。

  1. 在index.html中引入 heiho.js
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kktsvetkov/heiho@latest/heiho.css"/>
<script src="https://cdn.jsdelivr.net/gh/kktsvetkov/heiho@latest/heiho.js"></script>
  1. 安装papaparse, jschardet ,并在需要用的页面中引入并使用;
yarn  add  jschardet
yarn add papaparse

二、打开本地csv文件

若你需要解析本地csv文件, Papa.parse的第一个参数是file文件.参考:local-files

<template>
  <div class="preview-csv">
    <input type="file" ref="upload-csv" accept=".csv" />
    <el-button type="primary" @click="handleClick">Read CSV</el-button>
  </div>
</template>
<script>
import Papa from "papaparse";
const jschardet = require("jschardet");
export default {
  data() {
    return {
      csv: [
        ["a", "b", "c"],
        [1, 2, 3],
        [4, 5, 6]
      ],
      encoding: ""
    };
  },
  mounted() {
    // Heiho(this.csv);
  },
  methods: {
    handleClick() {
      // 若文件要从后台获取,将事件监听换成 调用后台接口的操作即可;
      const that = this;
      const file = that.$refs["upload-csv"].files[0];
      const fReader = new FileReader();
      fReader.readAsDataURL(file);
      fReader.onload = function(evt) {
        const data = evt.target.result;
        that.encoding = that.checkEncoding(data);
        that.parseCsvFile(file);
      };
    },
    parseCsvFile(file) {
      //引入Papaparse.js,将数据转换成二维数组
      Papa.parse(file, {
        encoding: this.encoding,
        complete: function(results) {
          const arrs = results.data;
          // 去除最后的空行
          const lastItem = arrs[arrs.length - 1].every(val => val === "");
          lastItem && arrs.pop();
          // 通过heiho.js预览csv:https://github.com/kktsvetkov/heiho
          Heiho(arrs);
        }
      });
    },
    checkEncoding(base64Str) {
      // 要用二进制格式
      const str = atob(base64Str.split(";base64,")[1]);
      let encoding = jschardet.detect(str).encoding;
      encoding === "windows-1252" && (encoding = "ANSI"); // 有时会识别错误(如UTF8的中文二字)若这里中文还是出现了乱码问题,可将encoding设置为gb18030(全称: 信息技术 中文编码字符集)
      return encoding;
    }
  }
};
</script>

在这里插入图片描述
页面初始效果:
在这里插入图片描述
预览效果如图:
在这里插入图片描述
相关链接:

PapaParse:https://github.com/mholt/PapaParse
jschardet:https://github.com/aadsm/jschardet#readme
heiho:https://github.com/kktsvetkov/heiho
解决中文乱码,参考博客:https://blog.csdn.net/qq_40544291/article/details/105823673

三、下载远程csv文件

若你拿到的是一个在线文件地址, Papa.parse(的第一个参数是 该csv文件的URL地址。

在html文件中,使用papaparse.js和heiho.js预览csv文件,只需引入相应的js和css文件即可(使用同vue中)。

参考:remote-files

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>在线预览csv文件</title>
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/gh/kktsvetkov/heiho@latest/heiho.css"
    />
    <script src="https://cdn.jsdelivr.net/gh/kktsvetkov/heiho@latest/heiho.js"></script>
  </head>
  <body>
    <script src="https://unpkg.com/papaparse@5.3.0/papaparse.min.js"></script>
    <script>
      Papa.parse(
        'https://support.staffbase.com/hc/en-us/article_attachments/360009197071/email.csv',
        {
          download: true,
          complete: function (results) {
            console.log('results :', results);
            Heiho(results.data);
          }
        }
      );
    </script>
  </body>
</html>

在这里插入图片描述
csv文件在线示例,链接:https://support.staffbase.com/hc/en-us/article_attachments/360009197071/email.csv
更多示例,请参考:CSV-File-Examples

GitLab是一个基于Web的 Git 服务,它不仅用于版本控制,还提供了一个强大的CI/CD平台。如果你想在 GitLab 上预览 CSV 文件,通常不是直接在 GitLab 中查看,而是将 CSV 视作数据文件,通过 CI/CD 流程进行处理后展示。 你可以按照以下步骤操作: 1. **创建CSV文件**:首先,在项目仓库里添加一个CSV文件,比如 `data.csv`。 2. **配置CI/CD pipeline**:在 `.gitlab-ci.yml` 或者 GitLab 的 CI 构建设置中,编写一段脚本来处理这个文件,例如使用Python的pandas库读取并转换成HTML或者其他可以在线查看的数据格式。 ```yaml job_name: script: - python read_csv.py data.csv > preview.html - echo "Preview is available at /preview.html" ``` 3. **生成预览页面**:在构建完成后,你的脚本会生成一个 HTML 页面(如上例中的 `preview.html`),里面包含 CSV 数据的预览。 4. **访问预览**:通过构建后的artifacts功能,在 GitLab UI中找到对应的工作流,点击"Artifacts",找到生成的 `preview.html` 并预览。 5. **部署到服务器或静态网站**:如果需要长期保留预览,可以考虑部署到一个静态网站或云存储服务,然后在项目的README或wiki页面提供链接。 请注意,这取决于你的实际需求以及你如何选择在GitLab中展示CSV内容。如果没有持续集成的需求,简单地将CSV文件上传到项目文档或示例目录,用户也可以下载查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值