Скопируйте цвет фона из одного столбца в другой с помощью nodejs google sheet api - PullRequest
0 голосов
/ 30 октября 2019

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

Я нашел этот php docон получил и установил фон: https://developers.google.com/resources/api-libraries/documentation/sheets/v4/php/latest/class-Google_Service_Sheets_CellFormat.html

Но не могу найти тонны информации о том, как отформатировать этот запрос с помощью узла. Не уверен, что в узле есть фон get и set? https://github.com/googleapis/google-api-nodejs-client/tree/master/samples/sheets

Мой план состоял в том, чтобы получить цвет фона из отформатированного столбца, а затем скопировать это форматирование в столбец без форматирования. Я не могу найти документацию по этому вопросу для Node. Есть ли? Возможно ли это даже с помощью запроса batchUpdate?

Функция getFormatting (sheetId, startRowIndex, endRowIndex, столбцы, столбец) {const function_name = 'getFormatting';

let { startColumnIndex, endColumnIndex } = getStartEndIndex(columns, column, column);

const request =  [{
  "getBackgroundColor": {
          "backgroundColorRange": {
          "range": {
            sheetId,
            startRowIndex,
            endRowIndex,
            startColumnIndex,
            endColumnIndex,
          }, }
  }
}];

}

Я надеюсь получить цвета фона для столбца A1: A1 (длина) и скопировать их в B1: B1 (длина) в том же порядке в строках

1 Ответ

0 голосов
/ 01 ноября 2019
  • Вы хотите скопировать цвета фона ячеек в столбце «A» в столбец «B».
  • Вы хотите добиться этого с помощью googleapis с Node.js.
  • Вы уже смогли получить и поместить значения для Spreadsheet, используя Sheets API.

Я мог понять, как выше. Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом, как об одном из нескольких ответов.

Поток:

Порядок выполнения этого сценария следующий.

  1. Получение цветов фона ячеекв столбце «A» используйте spreadsheets.get().
  2. Создайте тело запроса, используя полученные значения.
  3. Измените цвета фона ячеек в столбце «B», используя spreadsheets.batchUpdate().

Пример сценария:

Перед использованием, пожалуйста, установите переменные spreadsheetId и sheetName.

const sheets = google.sheets({ version: "v4", auth });

const spreadsheetId = "###"; // Please set the Spreadsheet ID.
const sheetName = "Sheet1"; // Please set the sheet name. In this sample, "Sheet1" is set.

const request = {
  spreadsheetId: spreadsheetId,
  ranges: [`${sheetName}!A1:A`],
  fields: "sheets"
};
sheets.spreadsheets.get(request, function(err, response) {
  if (err) {
    console.error(err);
    return;
  }
  let requests = {
    requests: [
      {
        updateCells: {
          fields: "userEnteredFormat.backgroundColor",
          start: {
            sheetId: response.data.sheets[0].properties.sheetId,
            rowIndex: 0,
            columnIndex: 1
          },
          rows: response.data.sheets[0].data[0].rowData.map(function(row) {
            return {
              values: [
                {
                  userEnteredFormat: {
                    backgroundColor:
                      row.values[0].effectiveFormat.backgroundColor
                  }
                }
              ]
            };
          })
        }
      }
    ]
  };
  sheets.spreadsheets.batchUpdate(
    { spreadsheetId: spreadsheetId, requestBody: requests },
    function(err, response) {
      if (err) {
        console.error(err);
        return;
      }
      console.log(JSON.stringify(response.data, null, 2));
    }
  );
});

Ссылки:

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