代码之家  ›  专栏  ›  技术社区  ›  Josh

如何确定Google Sheets API返回值的数据类型

  •  6
  • Josh  · 技术社区  · 7 年前

    我正在使用Google sheets API从具有未知值的数据集获取值。我需要找出每个返回值的数据类型( number, boolean, string datetime ).

    number . 我可以查一下 boolean a中的值 string 否则将值作为类型返回 一串 . 我需要一种可靠的方法来确定字符串是否应为类型 日期时间 .

    日期时间 格式化字符串并将其强制为日期(如果匹配)?

    1 回复  |  直到 7 年前
        1
  •  7
  •   Tanaike    7 年前

    可以使用以下命令检索单元格格式: sheets.spreadsheets.get 表API v4。在您的情况下,您可以使用 sheets(data(rowData(values(userEnteredFormat/numberFormat,userEnteredValue)),startColumn,startRow)) 就像田野一样。

    例如,当您想要检索“A1”的单元格格式时,可以按如下方式使用端点。

    GET https://sheets.googleapis.com/v4/spreadsheets/### spreadsheet ID ###?ranges=sheet1!a1%3Aa1&fields=sheets(data(rowData(values(userEnteredFormat%2FnumberFormat%2CuserEnteredValue))%2CstartColumn%2CstartRow))
    

    以下结果是检索到的响应 number, boolean, string and datetime .

    结果1:

    在此示例中,值和格式分别为“123”和数字。

    {
     "sheets": [
      {
       "data": [
        {
         "rowData": [
          {
           "values": [
            {
             "userEnteredValue": {
              "numberValue": 123
             },
             "userEnteredFormat": {
              "numberFormat": {
               "type": "NUMBER",
               "pattern": "#,##0.00"
              }
             }
            }
           ]
          }
         ]
        }
       ]
      }
     ]
    }
    

    结果2:

    在此示例中,值和格式分别为“true”和自动检测到的布尔值。

    {
     "sheets": [
      {
       "data": [
        {
         "rowData": [
          {
           "values": [
            {
             "userEnteredValue": {
              "boolValue": true
             }
            }
           ]
          }
         ]
        }
       ]
      }
     ]
    }
    

    结果3:

    在此示例中,值和格式分别为“123”和string。

    {
     "sheets": [
      {
       "data": [
        {
         "rowData": [
          {
           "values": [
            {
             "userEnteredValue": {
              "stringValue": "123"
             },
             "userEnteredFormat": {
              "numberFormat": {
               "type": "TEXT"
              }
             }
            }
           ]
          }
         ]
        }
       ]
      }
     ]
    }
    

    结果4:

    在此示例中,值和格式分别为“2017/10/10 1:23:45”和datetime。

    {
     "sheets": [
      {
       "data": [
        {
         "rowData": [
          {
           "values": [
            {
             "userEnteredValue": {
              "numberValue": 43018.05815972222
             },
             "userEnteredFormat": {
              "numberFormat": {
               "type": "DATE",
               "pattern": "yyyy/MM/dd"
              }
             }
            }
           ]
          }
         ]
        }
       ]
      }
     ]
    }
    

    numberValue 是序列号。

    如果我误解了你的问题,对不起。