Загрузите электронную таблицу в CSV с помощью Python и GSpread

#python #csv #spreadsheet #gspread

#питон #csv #электронная таблица #gspread

Вопрос:

С помощью этого кода я могу загрузить все листы, которые есть в электронной таблице, в csv. но я просто хочу загрузить лист. Есть ли способ это сделать?

Код

 import csv
import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)

docid = "123"

client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(docid)
for i, worksheet in enumerate(spreadsheet.worksheets()):
    filename = docid   '-worksheet'   str(i)   '.csv'
    with open(filename, 'wb') as f:
        writer = csv.writer(f)
        writer.writerows(worksheet.get_all_values())
 

Если кто-нибудь знает, пожалуйста, дайте мне знать.

Из этих документов я получил информацию

Комментарии:

1. Что вы подразумеваете под «загрузкой листа»? Загрузить только ОДИН лист или загрузить в виде файла Excel, а не CSV?

2. спасибо за комментарий. Я просто хочу загрузить только один лист и сделать это в формате csv.

3. итак, в каком формате вы хотите загрузить файл?

4. в формате csv я хочу загрузить.

5. Вы знаете, какой лист вам нужен? Ваш код создает CSV-файл для каждого рабочего листа. Но я понимаю, что вам нужен только один. Который из них?

Ответ №1:

Использование метода для получения листа по имени должно сработать для вас.

Пример (только печать «sheet2»):

 import csv
import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)

docid = "123"

client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(docid)
worksheetName = "sheet2"
worksheet = spreadsheet.worksheet(worksheetName)
filename = docid   '-worksheet'   worksheetName   '.csv'
with open(filename, 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(worksheet.get_all_values())
 

Комментарии:

1. Зачем вообще использовать цикл for, если вы хотите обработать только один случай?

2. благодаря этому вы можете загрузить единую электронную таблицу