You need to enable JavaScript to run this app. 如何使用JavaScript从CSV提取单列数据实现风扇转速与状态展示
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript从CSV提取单列数据实现风扇转速与状态展示

实现方案(原生JavaScript无需额外依赖)

你可以通过Fetch API读取CSV文件,再按规则解析成键值对对象,就能直接提取对应字段的值,完整实现代码如下:

1. 完整功能代码

// 读取并解析CSV,更新页面数据
async function updateFanStatus() {
  try {
    // 读取CSV文件,这里替换成你的CSV实际路径
    const response = await fetch('./fan_status.csv');
    const csvText = await response.text();
    
    // 拆分CSV行,过滤空行
    const lines = csvText.split('\n').filter(line => line.trim() !== '');
    // 第一行是表头,拆成字段数组
    const headers = lines[0].split(',');
    // 第二行是实际数值,拆成数组并转成数字类型
    const values = lines[1].split(',').map(val => Number(val.trim()));
    
    // 拼成键值对对象,方便直接取对应字段
    const fanData = {};
    headers.forEach((header, index) => {
      fanData[header.trim()] = values[index];
    });

    // 更新风扇0转速
    document.getElementById("FCfan0num").innerHTML = fanData.Fan0SP;
    // 风扇1/2/3转速更新按同样格式写即可
    // document.getElementById("FCfan1num").innerHTML = fanData.Fan1SP;

    // 更新风扇0状态灯,原有代码的判断条件是赋值错误,已修正为全等判断
    const fan0Light = document.getElementById("FCfanlight0");
    if (fanData.Fan0ST === 0) {
      fan0Light.className = "FCfanlight0 alert";
    } else {
      fan0Light.className = "FCfanlight0 norm";
    }
    // 其他风扇的状态灯更新同理
    // const fan1Light = document.getElementById("FCfanlight1");
    // if (fanData.Fan1ST === 0) {
    //   fan1Light.className = "FCfanlight1 alert";
    // } else {
    //   fan1Light.className = "FCfanlight1 norm";
    // }

  } catch (err) {
    console.error('读取CSV失败:', err);
  }
}

// 页面加载完成后执行,需要定时更新的话可以加setInterval
window.addEventListener('load', () => {
  updateFanStatus();
  // 如果需要每秒刷新一次数据,取消下面的注释,间隔时间可自行调整(单位为毫秒)
  // setInterval(updateFanStatus, 1000);
});

2. 注意事项

  • 替换代码中./fan_status.csv为你实际的CSV文件存放路径
  • 你原有状态灯代码中的if (data=0)是赋值操作,会导致逻辑错误,已修正为===全等判断
  • 本地直接打开HTML文件测试会触发跨域限制,建议部署到本地服务(比如VSCode的Live Server插件)测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 12:54:06