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

Ruby读取Excel中Gameicons数据及Squib图标调用问题求助

问题排查与解决方案

一、排查Power列写"capitol"时图标功能失效的问题

先从几个常见的点入手排查,一步步缩小范围:

  • 检查Excel单元格的实际内容:有时候单元格里会藏着空格、换行或者大小写问题(比如不小心写成了"Capitol"首字母大写)。你可以在读取Excel数据后,打印出Power列的实际值来验证,比如在代码里加一行:

    puts "Power column value: '#{data['Power'][0]}'" # 替换0为出现问题的行索引
    

    如果输出里有多余空格,记得用strip处理:power_value = data['Power'][i].strip

  • 核对图标slug的正确性:Gameicons的图标是通过唯一的slug来调用的,确认"capitol"是不是对应图标的正确slug(比如有没有拼写错误,或者图标实际slug是"capitol-building"这类)。你可以单独在代码里测试gameicons key: 'capitol',看能不能正常显示图标。

  • 检查Squib调用的异常情况:拉取图标时可能因为网络问题、slug不存在返回错误,但默认可能没抛出异常。可以加个异常捕获块看看具体错误:

    begin
      gameicons key: power_value, x: 50, y: 50 # 替换成你的坐标参数
    rescue => e
      puts "Error loading icon for '#{power_value}': #{e.message}"
    end
    

    这样能直接看到是404(slug不存在)还是网络连接问题。

  • 确认Excel表头的匹配度:如果你用data['Power']读取列,要确保Excel里的表头是完全一致的(包括大小写,比如不能Excel里是"power"小写,代码里用"Power"大写)。

二、用Ruby直接从Excel拉取Gameicons相关数据

Squib常用roo库处理Excel文件,结合Gameicons的图标URL规则,你可以这样实现:

步骤1:安装依赖库

先确保安装了roo(用于读取Excel),open-uri是Ruby自带的网络资源拉取库,无需额外安装:

gem install roo

步骤2:编写读取与拉取代码

假设你的Excel里Power列存的是Gameicons的图标slug,代码示例:

require 'roo'
require 'open-uri'
require 'fileutils'

# 读取Excel文件
xlsx = Roo::Excelx.new('your_card_data.xlsx')

# 跳过表头,遍历每一行数据
xlsx.each_row_streaming(offset: 1) do |row|
  # 假设Power列是第3列(索引从0开始,所以是2),根据你的实际表结构调整
  power_slug = row[2].value&.strip
  next if power_slug.nil? || power_slug.empty?

  # 构造Gameicons图标URL(这里用128x128尺寸,可换成4x4或其他规格)
  icon_url = "https://game-icons.net/1x1/#{power_slug}.png"

  begin
    # 拉取图标二进制数据
    icon_content = URI.open(icon_url).read

    # 可选:将图标保存到本地文件夹(先确保icons目录存在)
    FileUtils.mkdir_p('icons') unless Dir.exist?('icons')
    File.write("icons/#{power_slug}.png", icon_content)

    # 也可以直接在Squib中使用这个二进制数据
    # png data: icon_content, x: 100, y: 100
  rescue OpenURI::HTTPError => e
    puts "Failed to fetch icon '#{power_slug}': #{e.message}"
  rescue => e
    puts "Unexpected error for '#{power_slug}': #{e.message}"
  end
end

注意事项

  • 如果Excel里存的是图标名称而非slug,Gameicons没有公开的搜索API,不建议用网页抓取(可能违反网站规则),最好统一换成slug来存储。
  • 记得处理空值和异常,避免个别错误导致整个脚本中断。

内容的提问来源于stack exchange,提问作者Filip Kramarić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:15:30