Открыть данные String CSV в Google Таблицах - PullRequest
0 голосов
/ 18 июня 2020

Итак, в настоящее время у меня есть некоторые данные в формате CSV в виде строки в моем JavaScript коде как часть расширения chrome. Мне нужна кнопка, при нажатии которой открывается новая вкладка с данными CSV, загруженными в виде документа Google Sheets. Обычно это кнопка «Открыть в Google Таблицах». Открытый документ листа Google предпочтительно не будет храниться на диске пользователя, вошедшего в систему (или на любом другом диске), а просто откройте новую вкладку с открытым файлом CSV.

$("#opnWithSheetsBtn").click((e)=>{
    myCSV = $("#userInput").value()
    // Code which will open CSV data in new tab using Google Sheets
})

TL; DR: я хочу создать Кнопка «Открыть в Google Таблицах» во внешнем приложении.

1 Ответ

0 голосов
/ 19 июня 2020

Решение

Принимая во внимание информацию, которой вы поделились, мое предположение следующее: ваши данные CSV преобразованы в объект Javascript и преобразованы в строку. Поправьте меня, если я ошибаюсь.

Если мое предположение верно, то при нажатии кнопки HTML вам нужно будет запустить функцию, указанную ниже. Чтобы иметь возможность запускать это в скрипте приложений, вы должны от go до Resources-> Advanced Google Services и активировать сервис Sheets API (так как мы будем использовать его метод batchUpdate).

Эта функция API листов даст нам большую эффективность, чем при использовании ванильного скрипта приложений.

function insertCSVinNewSheet(data){

  // Use create to create a new Spreadsheet and get its first sheet. 
  var sheetId = SpreadsheetApp.create('newSpreadSheet').getSheets()[0].getSheetId();
  var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
  // Create the resource to update your sheet
  var resource = {
    requests: [
      {
        pasteData: {
          data: data,
          coordinate: { sheetId: sheetId },
          delimiter: ","
        }
      }
    ]
  };
  
  // Use the Sheet API to make a batch update in the new sheet inserting all our data
  Sheets.Spreadsheets.batchUpdate(resource, spreadsheetId);
}

Надеюсь, это вам помогло. Дайте мне знать, если вам еще что-нибудь понадобится или вы чего-то не поняли. :)

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