Google Drive API v3 - импорт CSV в листе - возможно ли отключить интеллектуальное преобразование? - PullRequest
0 голосов
/ 07 января 2019

Благодаря API мы можем создать пустой файл Sheet, а затем заполнить его данными CSV. В моих данных CSV строки заключены в двойные кавычки ("). В этих данных присутствуют штрих-коды типа «0212345678901». В файле листа строка 0212345678901 преобразуется в число, поэтому первые 0 исчезают ... Это неверно. В CSV-файле, если строка окружена двойными кавычками, она останется строкой ...

Мои данные импортируются в 2 этапа:

  1. Я создаю новый пустой файл листа с API. API возвращает идентификатор созданного файла.

    1. POST => https://www.googleapis.com/drive/v3/files
    2. тело:

      {
        'name': 'aFilename',
        'mimeType': 'application/vnd.google-apps.spreadsheet',
        'parents': [idFolder]
      }
      
  2. Я обновляю файл (с помощью вызова PATCH REST) ​​с предыдущим возвращенным идентификатором. Содержание моих данных CSV.

    1. PATCH => https://www.googleapis.com/upload/drive/v3/files/${file['id']}?uploadType=media
    2. Заголовки: авторизация + 'Content-Type': 'text / csv'

Итак, у меня два вопроса: 1: возможно ли отключить умное преобразование? 2: Или есть способ указать, что строка должна оставаться строкой (как в Excel, если мы начинаем формулу с простой кавычки ')?

Образец:

"21/12/2018 17:02:06","3614950268815",1  
"21/12/2018 17:04:28","0212345005507",1  
"21/12/2018 17:32:10","3614950268891",1  
"21/12/2018 17:32:52","3614950268099",1  
"21/12/2018 17:34:36","3614950268105",1

1 Ответ

0 голосов
/ 08 января 2019

Как насчет этих модификаций? В вашей ситуации есть 3 модели. Я думаю, что есть несколько ответов. Поэтому, пожалуйста, подумайте об этом как об одном из них.

1. Добавить апостроф

В этом шаблоне, добавив апостроф к данным CSV, его можно использовать как строковое значение. Добавьте апостроф к данным CSV и обновите электронную таблицу, используя измененный файл CSV. Я думаю, что это наиболее просто в этих 3 паттернах.

"21/12/2018 17:04:28","'0212345005507",1

или

"21/12/2018 17:04:28",'0212345005507,1

2. Используйте метод spreadsheets.values.update в API листов

В этом шаблоне метод spreadsheets.values.update в Sheets API используется для созданной электронной таблицы.

Конечная точка:
PUT https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###/values/### sheetName ###?valueInputOption=RAW
Тело запроса:
{
 "values": [
  [
   "21/12/2018 17:02:06",
   "0212345005507",
   "1"
  ]
 ]
}

3. Используйте метод spreadsheets.create в Sheets API

В этом шаблоне используется метод spreadsheets.create в Sheets API. В этом случае как создание электронной таблицы, так и размещение значений могут быть выполнены одним вызовом API.

Конечная точка:
POST https://sheets.googleapis.com/v4/spreadsheets
Тело запроса:
{
 "sheets": [
  {
   "data": [
    {
     "rowData": [
      {
       "values": [
        {
         "userEnteredValue": {
          "stringValue": "21/12/2018 17:02:06"
         }
        },
        {
         "userEnteredValue": {
          "stringValue": "0212345005507"
         }
        },
        {
         "userEnteredValue": {
          "numberValue": 1
         }
        }
       ]
      }
     ]
    }
   ]
  }
 ],
 "properties": {
  "title": "### filename of spreadsheet ###"
 }
}

Примечание:

  • В случае шаблонов 2 и 3 Sheets API устанавливает значение 0212345005507, автоматически добавляя апостроф. Когда вы видите клетку, это '0212345005507.

Ссылки

Если это не тот результат, который вам нужен, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...