以showExcel为例学html

以showExcel为例学html1 HTML 基础结构

大家好,欢迎来到IT知识分享网。

1. HTML 基础结构

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学生信息管理系统</title>
</head>
<body>
    <!-- 页面内容 -->
</body>
</html>
  • <!DOCTYPE html> 声明文档类型为 HTML5
  • <html> 是根元素,lang=”zh-CN” 指定中文语言
  • <head> 包含元数据和引用的外部资源
  • <body> 包含页面可见内容

2. 引入外部资源

<script src="https://cdn.tailwindcss.com"></script> <script src="https://cdn.jsdelivr.net/npm/xlsx@0.18.5/dist/xlsx.full.min.js"></script>
  • Tailwind CSS: 实用优先的 CSS 框架
  • SheetJS (xlsx): 处理 Excel 文件的 JavaScript 库

3. 页面布局与组件

3.1 容器与标题

<div class="max-w-4xl mx-auto bg-white rounded-lg shadow-md p-6"> <h1 class="text-2xl font-bold mb-6 text-gray-800"> <i class="fa fa-users mr-2"></i>学生信息管理系统 </h1> </div>
  • max-w-4xl mx-auto: 设置最大宽度并居中
  • bg-white rounded-lg shadow-md: 白色背景、圆角和阴影
  • p-6: 内边距

3.2 文件上传区域

<div class="mb-6 border-2 border-dashed border-gray-300 rounded-lg p-8 text-center hover:border-blue-500 transition-colors" id="drop-zone" ondragover="event.preventDefault(); this.classList.add('border-blue-500')" ondragleave="this.classList.remove('border-blue-500')" ondrop="handleFileDrop(event)"> <input type="file" id="file-input" class="hidden" accept=".xls,.xlsx" /> <label for="file-input" class="cursor-pointer"> <!-- SVG 图标和提示文字 --> </label> </div>
  • 实现了拖放文件上传功能
  • hidden 类隐藏原生文件输入
  • accept=”.xls,.xlsx” 限制文件类型

3.3 数据表格

<table class="min-w-full divide-y divide-gray-200" id="data-table"> <thead class="bg-gray-50"> <tr> <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase">姓名</th> <!-- 其他表头 --> </tr> </thead> <tbody class="bg-white divide-y divide-gray-200"> <!-- 动态内容 --> </tbody> </table>
  • divide-y 添加行间分隔线
  • 表头(thead)和表体(tbody)分离

4. JavaScript 功能实现

4.1 文件处理逻辑

function processExcel(file) { const reader = new FileReader(); reader.onload = function(e) { const data = new Uint8Array(e.target.result); const workbook = XLSX.read(data, { type: 'array' }); const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const jsonData = XLSX.utils.sheet_to_json(worksheet); // 处理数据... }; reader.readAsArrayBuffer(file); }
  1. 使用 FileReader 读取文件
  2. 通过 SheetJS 解析 Excel 文件
  3. 将工作表转换为 JSON 数据

4.2 动态生成表格内容

const tbody = document.querySelector('#data-table tbody'); tbody.innerHTML = jsonData.map(item => ` <tr class="hover:bg-gray-50"> <td class="px-6 py-4 whitespace-nowrap">${item[columns.name] || ''}</td> <!-- 其他单元格 --> </tr> `).join('');
  • 使用 map() 遍历数据
  • 模板字符串生成 HTML
  • join(”) 将数组转换为字符串

4.3 自动检测列名

function findColumn(data, possibleNames) { const keys = Object.keys(data[0]); return possibleNames.find(name => keys.some(k => k.toLowerCase() === name.toLowerCase()) ) || null; }
  • 支持多种可能的列名
  • 不区分大小写匹配

5. 响应式设计

Tailwind CSS 提供了响应式设计类,例如:

  • md: 中等屏幕及以上
  • lg: 大屏幕及以上

6. 交互效果

6.1 拖放反馈

ondragover="event.preventDefault(); this.classList.add('border-blue-500')" ondragleave="this.classList.remove('border-blue-500')"
  • 拖拽时添加蓝色边框
  • 拖拽离开时移除

6.2 状态提示

function showStatus(message, type = 'info') { const status = document.getElementById('status'); status.textContent = message; status.className = `mt-4 text-sm ${ info: 'text-blue-600', success: 'text-green-600', error: 'text-red-600' }[type]} transition-colors`; }
  • 根据类型显示不同颜色
  • 使用对象查找简化条件逻辑
以showExcel为例学html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/184970.html

(0)
上一篇 2025-08-04 10:45
下一篇 2025-08-04 11:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信