You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript/jQuery生成带表头CSV并导出HTML标签对应内容

实现HTML内容转指定格式CSV并支持下载

完整实现代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>HTML转CSV</title>
  <style>
    .badge { padding: 2px 6px; border-radius: 4px; }
    .badge-success { background-color: #28a745; color: white; }
  </style>
</head>
<body>
  <!-- 示例数据HTML -->
  <div class="data-item">
    <div class="cat">Tom</div>
    <div class="dog"><span class="badge badge-success">Buddy</span></div>
    <div class="bird">Tweety</div>
  </div>
  <div class="data-item">
    <div class="cat">Garfield</div>
    <div class="bird">Woody</div>
  </div>
  <div class="data-item">
    <div class="dog"><span class="badge">Max</span></div>
    <div class="bird">Polly</div>
  </div>

  <!-- 下载按钮 -->
  <button id="downloadCsv">下载CSV文件</button>

  <script>
    document.getElementById('downloadCsv').addEventListener('click', function() {
      // 定义CSV表头
      const headers = ['CAT', 'DOG', 'BIRD'];
      // 获取所有数据项
      const items = document.querySelectorAll('.data-item');
      const rows = [headers.join(',')];

      // 遍历处理每个数据项
      items.forEach(item => {
        const row = [];
        // 处理CAT列
        const catEl = item.querySelector('.cat');
        row.push(catEl ? `"${catEl.textContent.trim()}"` : '"-"');
        // 处理DOG列
        const dogSpan = item.querySelector('.dog span');
        if (dogSpan) {
          if (dogSpan.classList.contains('badge-success')) {
            row.push('"success"');
          } else {
            row.push(`"${dogSpan.textContent.trim()}"`);
          }
        } else {
          row.push('"-"');
        }
        // 处理BIRD列
        const birdEl = item.querySelector('.bird');
        row.push(birdEl ? `"${birdEl.textContent.trim()}"` : '"-"');
        
        rows.push(row.join(','));
      });

      // 生成CSV内容
      const csvContent = rows.join('\n');
      // 创建下载链接并触发下载
      const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
      const url = URL.createObjectURL(blob);
      const link = document.createElement('a');
      link.href = url;
      link.setAttribute('download', 'data.csv');
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
      URL.revokeObjectURL(url);
    });
  </script>
</body>
</html>

功能说明

  • 表头与列映射:固定使用CAT、DOG、BIRD作为CSV表头,确保输出格式统一
  • DOG列特殊处理:当对应<span>带有badge-success类时,CSV中该列直接填入success,否则提取span文本内容
  • 缺失列填充:任意数据项中缺少对应列的元素时,自动填入-
  • CSV格式兼容:所有字段用双引号包裹,避免内容包含逗号时导致列错位问题
  • 下载功能:点击按钮后自动生成CSV文件并触发浏览器下载,无需后端支持

预期CSV输出

CAT,DOG,BIRD
"Tom","success","Tweety"
"Garfield","-","Woody"
"-","Max","Polly"

内容的提问来源于stack exchange,提问作者The Tester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:39:19