заполнить строку листа Google, сводя к минимуму использование API - PullRequest
0 голосов
/ 15 апреля 2020

Настройка

Используя gspread и Shopify API, я вставляю данные заказа в шаблон счета Google Sheet в Google Drive.

На заказанный SKU у меня есть 4 переменные;

  1. название продукта и название варианта
  2. количество заказа
  3. цена за единицу продукции
  4. общая стоимость

, которые в настоящее время вставляется в ту же строку в столбцы B, E, F и G. соответственно.


код

# insert ordered line items
for j in range(0,len(order.line_items)):

    # insert product title and title variant
    wsheet.update_acell('B' + str(23+j),
        order.line_items[j].title + s + order.line_items[j].variant_title
            )       

    # insert quantity
    wsheet.update_acell('E' + str(23+j), order.line_items[j].quantity)       

    # price per unit
    wsheet.update_acell('F' + str(23+j),
        currency_symbol + order.line_items[j].price.replace('.',','))        

    # total price per line item
    wsheet.update_acell('G' + str(23+j),
        currency_symbol + str(
            round(float(
                order.line_items[j].price)*order.line_items[j].quantity,2
                    )).replace('.',','))    

где wsheet - это предварительно определенный Google лист currency_symbol также предварительно определен и не требует пояснений, а order - это элемент Shopify API.

Строка 23 - это первая строка шаблона счета, которая может быть заполнена элементами заказа. Код перебирает упорядоченные SKU и вставляет 4 переменные для каждого SKU в строке.


Issue

Как видно, обновления кода для каждой ячейки, которые не очень эффективен для Google API.

Я знаю, как обновить строку сразу, например, wsheet.insert_row(payload, index=(23)), где payload - это предварительно определенный список, содержащий 4 переменные.

Однако при этом вставляются 4 переменные, начиная со столбца A; Мне нужно, чтобы он вставлял переменные, начиная со столбца B.

Более того, для целей эстетики c столбец B, C и D объединяются в строке, начиная со строки 23 и далее. Что-то wsheet.insert_row не учитывает.


Вопрос

Как вставить строку в один go, учитывая начальный столбец и объединенные ячейки?

...