当前位置: 首页 > wzjs >正文

网站歌曲代码学网站建设要多长时间

网站歌曲代码,学网站建设要多长时间,网络公司经营范围,建立企业网站的费用一个简单的例子来理解: 读取用户上传的 Excel 文件(.xlsx),解析内容,并以表格形式在页面上显示出来。 它依赖一个外部库:XLSX.js(即 SheetJS),用于解析 Excel 数据。 代码…

一个简单的例子来理解:
读取用户上传的 Excel 文件(.xlsx),解析内容,并以表格形式在页面上显示出来。

它依赖一个外部库:XLSX.js(即 SheetJS),用于解析 Excel 数据。

代码

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h2>上传Excel文件</h2><input type="file" name="" id="excelFile" accept=".xlsx, .xls"><div id="output"></div><script src="https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js"></script><script src="index.js"></script>
</body>
</html>

index.js

// 读取excel并提取列内容
const UploadFie = document.querySelector("#excelFile")UploadFie.addEventListener("change", handleFile)function handleFile(event) {const file = event.target.files[0]// console.log(event.target.files[0])// const reader = new FileReader()reader.onload = function(e) {const data =  new Uint8Array(e.target.result)const workbook = XLSX.read(data, {type: "array"})const firstSheetName = workbook.SheetNames[0]const worksheet = workbook.Sheets[firstSheetName]// 转为 json 格式const jsonData = XLSX.utils.sheet_to_json(worksheet)// 渲染结果renderTable(jsonData)}// reader.readAsArrayBuffer(file)
}function renderTable(data) {const output = document.querySelector("#output")output.innerHTML = ""if (data.length === 0) {output.textContent = "没有数据"return}const table = document.createElement("table")table.style.border = "1"const thead = table.insertRow()Object.keys(data[0]).forEach(key => {const th = document.createElement("th")th.textContent = keythead.appendChild(th)})data.forEach(row => {const tr = table.insertRow()Object.values(row).forEach(value => {const td = tr.insertCell()td.textContent = value})})output.appendChild(table)
}

带注释js代码

// 获取页面上 ID 为 "excelFile" 的 <input type="file"> 元素,用于文件上传
const UploadFie = document.querySelector("#excelFile");// 给文件上传输入框添加事件监听器,监听 "change" 事件(用户选中文件时触发)
UploadFie.addEventListener("change", handleFile);// 文件选择后的处理函数
function handleFile(event) {// 获取用户选择的第一个文件对象(如果选择多个,只取第一个)const file = event.target.files[0];// 创建一个 FileReader 实例,用于读取文件内容const reader = new FileReader();// 当文件读取完成后触发 onload 回调函数reader.onload = function(e) {// 将读取到的 ArrayBuffer 包装成 Uint8Array 类型的字节数组const data = new Uint8Array(e.target.result);// 使用 SheetJS (XLSX) 读取 Excel 文件内容,指定类型为 "array"const workbook = XLSX.read(data, { type: "array" });// 获取 Excel 的第一个工作表名称const firstSheetName = workbook.SheetNames[0];// 获取第一个工作表对象const worksheet = workbook.Sheets[firstSheetName];// 将工作表数据转换为 JSON 格式数组,每一行为一个对象const jsonData = XLSX.utils.sheet_to_json(worksheet);// 将数据渲染为 HTML 表格并显示在页面上renderTable(jsonData);};// 将文件内容以 ArrayBuffer(二进制缓冲区)方式读取(适用于 Excel)reader.readAsArrayBuffer(file);
}// 渲染 JSON 数据为 HTML 表格,并插入到页面中
function renderTable(data) {// 获取用于显示表格的容器(一般是一个 <div id="output">)const output = document.querySelector("#output");// 清空上一次渲染的内容output.innerHTML = "";// 如果数据为空,显示提示文字并结束函数if (data.length === 0) {output.textContent = "没有数据";return;}// 创建一个新的 HTML 表格元素const table = document.createElement("table");table.style.border = "1"; // 设置表格边框(简易做法)// 创建表头(thead),使用数据的键(字段名)作为列名const thead = table.insertRow(); // 插入第一行作为表头Object.keys(data[0]).forEach(key => {const th = document.createElement("th"); // 创建表头单元格th.textContent = key; // 设置列名(字段名)thead.appendChild(th); // 将表头单元格添加到表头行中});// 遍历数据数组,为每一行数据创建表格行data.forEach(row => {const tr = table.insertRow(); // 创建新行Object.values(row).forEach(value => {const td = tr.insertCell(); // 创建单元格td.textContent = value;     // 填入单元格的值});});// 将完整表格添加到页面上的容器中output.appendChild(table);
}

结构总览 & 难理解的点

代码分为三大部分:

  1. 监听文件上传:UploadFie.addEventListener(...)
  2. 处理上传的文件内容并解析 Excel:handleFile 函数
  3. 将数据渲染成 HTML 表格:renderTable 函数

const data = new Uint8Array(e.target.result);

解释:
上面代码中:reader.readAsArrayBuffer(file); 我们通过 FileReaderreadAsArrayBuffer() 方法来读取文件内容,读取完成后触发 reader.onload,其事件对象 e 中包含的 e.target.result 是一个 ArrayBuffer

ArrayBuffer 是一种原始的、通用的二进制数据容器,不能直接读取内容,需要借助视图(如 Uint8Array, DataView, Float32Array 等)进行解析。


Uint8Array()

  • Uint8Array 是 JavaScript 中的一种类型化数组(TypedArray)
  • 它提供了对 ArrayBuffer 的结构化、字节级别的访问

const workbook = XLSX.read(data, { type: "array" });

  • XLSX.read() 要求的是字节数组
  • SheetJSXLSX.read() 方法如果传入 {type: "array"},它期望的输入是一个 Uint8Array,因此我们必须将原始的 ArrayBuffer 包装为 Uint8Array,否则 XLSX.read() 无法解析

🔬 ArrayBuffer VS Uint8Array

  • ArrayBuffer 就像一块原始磁盘空间,你知道有数据,但无法读取。
  • Uint8Array 就像一个读卡器,它能以 8 位为单位读出这些数据。


文章转载自:

http://aOgq5SDF.bzwxr.cn
http://CyXOtwp9.bzwxr.cn
http://EnPt3GVS.bzwxr.cn
http://TMSzgTTQ.bzwxr.cn
http://hzCP7A9v.bzwxr.cn
http://fbfBQSw9.bzwxr.cn
http://V08Nyabz.bzwxr.cn
http://K8vvWWiv.bzwxr.cn
http://Yl3SUTK8.bzwxr.cn
http://gbuMMw2n.bzwxr.cn
http://EBm4yaeY.bzwxr.cn
http://RvZDfyom.bzwxr.cn
http://6BofyZEF.bzwxr.cn
http://1Ne6NM7P.bzwxr.cn
http://zIJAkpO1.bzwxr.cn
http://neZz4Ubt.bzwxr.cn
http://AgQ0mlMM.bzwxr.cn
http://WN5pwgtf.bzwxr.cn
http://XWIHRwUC.bzwxr.cn
http://xTcAjP7d.bzwxr.cn
http://7VItVYK9.bzwxr.cn
http://AoPjL6K1.bzwxr.cn
http://gJwY25ms.bzwxr.cn
http://GJk6x4Ln.bzwxr.cn
http://7PK91XDP.bzwxr.cn
http://pbkEIYoY.bzwxr.cn
http://g9WIdDp2.bzwxr.cn
http://XEjeK0PQ.bzwxr.cn
http://QZt19Ium.bzwxr.cn
http://oXK2P7rp.bzwxr.cn
http://www.dtcms.com/wzjs/641580.html

相关文章:

  • 广州专业建设网站黑龙江省建设银行官网站首页
  • 盐城网站建设流程做网站为什么一定要去国外
  • 网页制作与网站建设设计价格市民专线是什么
  • 响应式单页网站模板wordpress4.0慢
  • 南京开发门户网站的公司免费咨询法律援助电话号码
  • 摄影学习网站wordpress注册怎么设置密码
  • 贵阳美容网站建设怎样做动漫照片下载网站
  • 做网站设计工资多少钱男女的做那个视频网站
  • asp 网站图标佘山做网站
  • 网站建设规划设计报告黄岩区建设局网站
  • 平台推广网站排名经典的响应式布局网站
  • 网站创建服务wordpress不能加人购物车
  • 软件科技公司网站模板免费体验服务器
  • 国外网站设计大全wordpress 外链视频
  • 制作网页的网站费用属于资本性支出吗会展平面设计主要做什么
  • 公司做网站需准备资料目录型搜索引擎有哪些
  • 美食网站页面设计模板北京网站设计优选刻
  • 江苏中淮建设集团有限公司网站湘建网
  • 网站内链建设方法apicloud
  • 电子商务网站建设的基本步骤室内设计网站资源
  • 广州网站建设哪里有禅城区城乡建设局网站
  • 广东建网站一键创建网站
  • 做企业展示网站需要多少钱提高学历去哪里报名正规
  • 自己能制作免费网站吗个人网站平台
  • 南宁网站建设业务员东莞出行政策有变了
  • html网站首页怎么做五个页面网站
  • 如何建立自己免费网站推荐做木工的视频网站
  • 石家庄建设厅官方网站贵州建设职业技术学院网站
  • 网站建设_制作_设计新网站seo优化
  • 英文自助建站临海网站建设公司