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

使用gatsby-source-google-spreadsheet时GraphQL数字转字符串如何解决

Gatsby谷歌表格数据源保留数字字段类型的解决方案

方法1:插件侧配置(最稳定,推荐)

gatsby-source-google-spreadsheet插件原生支持通过typeMap配置项自定义字段类型,你只需要在gatsby-config.js的插件配置中添加对应字段的类型声明即可:

module.exports = {
  plugins: [
    {
      resolve: "gatsby-source-google-spreadsheet",
      options: {
        // 保留你原有配置:spreadsheetId、apiKey/credentials、sheetName等参数
        typeMap: {
          // 替换为你实际的工作表名称
          你的工作表名: {
            // 整数类型字段指定为Int,带小数的数字指定为Float
            字段名1: "Int",
            字段名2: "Float"
          }
        }
      }
    }
  ]
}

配置完成后重启Gatsby服务,重新拉取数据后对应字段就会保留数字类型。

方法2:表格侧调整(无需修改代码)

如果不想修改项目配置,也可以通过调整谷歌表格的格式实现:

  • 选中对应数字列,右键选择「数字格式」→ 确认设置为「数字」类型,不要设置为「自动」或者「纯文本」
  • 检查整列所有单元格,确保没有空格、换行、文字注释等非数字内容,避免插件识别为混合类型默认转字符串

兜底方案:Gatsby Schema自定义

如果以上两种方式都不生效,你可以通过Gatsby的schema自定义API强制指定字段类型,在项目根目录的gatsby-node.js中添加如下代码:

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions
  // 注意将GoogleSpreadsheet{你的工作表名}替换为实际的GraphQL类型名,字段类型按需指定Int/Float
  const typeDefs = `
    type GoogleSpreadsheetSheet1 implements Node {
      你的数字字段名: Int
    }
  `
  createTypes(typeDefs)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:54:06