前端在线预览 csv文件

记录分享一个简单的在线预览csv文件的工具——papaparse 

papaparse 官网 Papa Parse - Powerful CSV Parser for JavaScript

js和css文件提取  链接:https://pan.baidu.com/s/1OSCEigfDqg8H6ifu_9kS7A 
提取码:ccea

使用说明 (vue案例)

1、下载  npm i papaparse@5.4.0(我用的这个版本)

2、组件引入   import Papa from 'papaparse'  

3、引入css和js文件 

<script src="<%= BASE_URL %>js/heiho.js"></script>

<link href="<%= BASE_URL %>css/heiho.css" rel="stylesheet" />

4、我这是拿到后台返回的文件数据,调用的parseCsvFile方法即可。

 const res = await previewMarkingFile(filePath)
        if (res) {
          this.parseCsvFile(res)
        } else {
          throw new Error('未找到相关文件')
        }
// 预览文件文本框
    parseCsvFile(file) {
      // 引入Papaparse.js,将数据转换成二维数组
      Papa.parse(file, {
        complete: (results) => {
          const arrs = results.data
          // 去除最后的空行
          const lastItem = arrs[arrs.length - 1].every(val => val === '')
          lastItem && arrs.pop()
          // 通过heiho.js  在首页index引入的文件
          Heiho(arrs, { max: 100, title: '在线浏览.csv' })
        }
      })
    },

 

### 使用 SheetJS 实现 CSV 文件预览 为了实现在前端使用 SheetJS 预览 CSV 文件的功能,可以通过 `xlsx` 库来解析 CSV 数据并将其转换为 HTML 表格展示给用户。以下是具体方法: #### 安装依赖包 首先需要安装 `xlsx` 插件,该插件由 sheetJS 出品用于处理 Excel 文件的操作[^2]。 ```bash npm install xlsx ``` #### 创建CSV文件读取组件 创建一个新的 Vue 组件或 JavaScript 模块用来负责上传和显示 CSV 文件的内容。这里假设是在一个基于Vue3 的环境中工作[^3]。 #### 编写代码逻辑 下面是一个简单的例子展示了如何利用 `xlsx` 来加载本地 CSV 文件并通过 `<table>` 标签呈现其数据结构: ```javascript import XLSX from 'xlsx'; export default { methods: { handleFile(e) { const files = e.target.files; if (files.length === 0) return; // 获取 File 对象 let file = files[0]; // 初始化 FileReader API 进行异步读取操作 var reader = new FileReader(); reader.onload = function(event){ var data = event.target.result; /* 将二进制字符串转成 workbook */ var wb = XLSX.read(data, {type:'binary'}); /* 取得第一个表单的名字 */ var first_sheet_name = wb.SheetNames[0]; /* 获得指定名称的工作簿 */ var worksheet = wb.Sheets[first_sheet_name]; /* 解析 JSON 数据 */ var json_data = XLSX.utils.sheet_to_json(worksheet); console.log(json_data); // 输出JSON格式的数据 renderTable(json_data); // 渲染表格函数 }; // 设置编码方式以及触发 readAsBinaryString 方法 reader.readAsBinaryString(file); } }, mounted() { document.querySelector('input[type="file"]').addEventListener('change', this.handleFile); }, beforeDestroy(){ document.querySelector('input[type="file"]').removeEventListener('change',this.handleFile); } } function renderTable(dataArray){ let tableBody = ''; dataArray.forEach((row)=>{ tableBody += '<tr>'; Object.values(row).forEach(cell => { tableBody += `<td>${cell}</td>`; }); tableBody += '</tr>'; }); document.getElementById('csv-table').innerHTML = tableBody; // 假设有一个 id='csv-table' 的 <table> 元素存在页面上 } ``` 这段脚本实现了当用户选择了一个 CSV 文件之后,会自动通过 `handleFile()` 处理程序去读取它,并最终把内容作为 HTML 表格的形式展现出来。注意这里的 `renderTable()` 是一个辅助性的函数,用来构建实际的 DOM 结构[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茶杯茶凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值