Как показать formattedValue вместо userEnteredValue в листах Google? - PullRequest
1 голос
/ 22 апреля 2020

Я пытался добавить значение в ячейку листов Google из учетной записи службы и показать форматированный текст зрителям. Мол, значение может быть 1, но я покажу вместо него «Джон». Поэтому я следовал за документацией и нашел запрос updateCell в batch_update, где была возможность показать «formattedValue».

formattedValue

string

Форматированный значение ячейки. Это значение, как оно показано пользователю. Это поле только для чтения.

Итак, вот что я пробовал -

req = []

req.append({
         "updateCells": {
              "rows": [
                  {
                     "values": [
                        {
                           "userEnteredValue": {
                                "numberValue": 17
                           },
                           "formattedValue": "ThisShouldBeShownToTheUser",
                           "userEnteredFormat": {
                                 "horizontalAlignment": "CENTER",
                                 "verticalAlignment": "MIDDLE"            
                           },
                        }
                     ]
                  }
               ],
               "fields": "*",
               "range": {
                     "sheetId": sheet.get_worksheet(0).id,
                     "startRowIndex": 0,
                     "endRowIndex": 1,
                     "startColumnIndex": 0,
                     "endColumnIndex": 1
               }
          }
      })

sheet.batch_update({"requests":req})

Но оно не работает и показывает userEnteredValue. Что я делаю неправильно? Или это не то, что должен делать formattedValue? Если это так, то что мне делать, чтобы достичь своей цели?

1 Ответ

1 голос
/ 22 апреля 2020
  • Вы хотите поместить значение 17 в качестве исходного значения и показать ThisShouldBeShownToTheUser в качестве отображаемого значения в ячейке.
  • Вы хотите добиться этого, используя python.

Если мое понимание правильное, как насчет этого ответа?

Точка модификации:

  • Для достижения вышеуказанной цели, пожалуйста, используйте numberFormat вместо formattedValue.

Когда тело вашего запроса изменяется, оно становится следующим:

Измененное тело запроса:

req.append({
    "updateCells": {
        "rows": [{
            "values": [{
                "userEnteredValue": {
                    "numberValue": 17
                },
                "userEnteredFormat": {
                    "horizontalAlignment": "CENTER",
                    "verticalAlignment": "MIDDLE",
                    "numberFormat": {
                        "pattern": "\"ThisShouldBeShownToTheUser\"",
                        "type": "NUMBER"
                    }
                }
            }]
        }],
        "fields": "*",
        "range": {
            "sheetId": sheet.get_worksheet(0).id,
            "startRowIndex": 0,
            "endRowIndex": 1,
            "startColumnIndex": 0,
            "endColumnIndex": 1
        }
    }
})

Примечание:

  • О formattedValue, например, когда объект даты помещается в ячейку и задается формат даты, отображаемое значение можно получить с помощью formattedValue вместо даты объект. Я думаю, что это то же самое с методом getDisplayValue(). Ссылка

Ссылки:

...