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

如何在Python中无需硬编码范围动态读取Google Sheets数据?

解决方案

要实现从A14开始读取到首个空单元格为止的动态数据,你可以改用get_values获取整列数据后过滤,而非固定范围的range调用。以下是修改后的完整代码:

async def players_d1(ctx):
    try:
        sheet_index = 0  # first sheet
        sheet = workbook.get_worksheet(sheet_index)
        
        # 从A14开始获取整列的所有值
        column_data = sheet.get_values('A14:A')
        player_list = []
        
        # 遍历数据,直到遇到第一个空单元格(去除首尾空格后判断)
        for row in column_data:
            cell_value = row[0].strip()
            if not cell_value:
                break
            player_list.append(cell_value)
        
        # 创建Embed
        embed = discord.Embed(title="Players in DIVISION I", color=discord.Color.red())
        
        # 如果有玩家数据,添加字段;否则提示无数据
        if player_list:
            for i, player in enumerate(player_list, start=1):
                embed.add_field(name=f"Player {i}", value=player, inline=False)
        else:
            embed.add_field(name="提示", value="当前DIVISION I暂无玩家数据", inline=False)
        
        await ctx.send(embed=embed)

    except Exception as e:
        print(f"Error: {e}")
        await ctx.send("An error occurred while fetching data from the worksheet.")

关键改动说明:

  • 用sheet.get_values('A14:A')替代固定范围调用,获取A14及以下整列的所有数据
  • 遍历数据时通过strip()去除单元格内容的首尾空格,避免因空格导致误判为空
  • 遇到第一个空单元格时立即停止遍历,减少不必要的处理
  • 增加空数据判断逻辑,避免Embed出现无效空字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:05:14