#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. благодаря этому вы можете загрузить единую электронную таблицу