Python - 如何从 Python 中的 Google Sheet 中读取特定范围的行和列?

Python - How to read specific range of rows and columns from Google Sheet in Python?

在GoogleSheet

中得到了类似下面的数据

需要读取从“A4 到 C4”列开始的数据范围,在 Python 下方有无数行(灵活)固定。 帮助我,因为我是 Google Sheet 和 Python.

的新手

作为 Dataframe df 的 Python 中的预期输出如下:

Name    Row Class
AA      1   II
BB      2   I
CC      3   III
DD      4   II

您可以像这样使用 pandas skiprows 我已经检查过了,它正在工作 我正在使用 .ods sheet

import pandas as pd

df = pd.read_excel(
    "test.ods", engine="odf", 
    index_col=None, 
    header=None, 
    skiprows=lambda x: x in [0,1,2],
    keep_default_na=False
)
print(df)

输出
https://imgur.com/VOQh4s7

for i in df:
    print(df[i])

输出
https://imgur.com/8tzsh8F

我知道这不是一个完整的解决方案,但离它很近。

在您的情况下,以下示例脚本如何?

示例脚本 1:

如果您的 Spreadsheet 不是作为 Web 发布发布的,那么下面的脚本怎么样?在此示例脚本中,我将 googleapis 用于 python。所以,关于如何使用这个,请查看Python Quickstart for Sheets API. service = build('sheets', 'v4', credentials=creds) in my proposed script is the same with the script of Python Quickstart for Sheets API.

spreadsheet_id = "###" # Please set the Spreadsheet ID.
range_a1Notation = "Sheet1!A4:C" # Please set the range as the A1Notation.

service = build('sheets', 'v4', credentials=creds)
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=spreadsheet_id, range=range_a1Notation).execute()
values = result.get("values", [])
df = pd.DataFrame(values)

示例脚本 2:

如果您的 Spreadsheet 发布为 Web 发布,您可以使用以下脚本。

import io
import pandas as pd
import requests

url = 'https://docs.google.com/spreadsheets/d/e/2PACX-###/pub?sheet=Sheet1&range=A4%3AC&output=csv'
df = pd.read_csv(io.BytesIO(requests.get(url).content), sep=',')
  • 在这种情况下,请将 2PACX-### 替换为您发布的网站 URL。
  • Sheet1 of sheet=Sheet1 是 sheet 名字。
  • A4%3AC of range=A4%3AC 是范围 A4:C 作为 A1Notation。

参考文献:

使用 openpyxl 简单易行:

from openpyxl import load_workbook

wb = load_workbook(filename = 'your_path_to_file.xlsx')

sheet = wb['Your sheet name']
    for index, row in enumerate(sheet.iter_rows()):
        if index == "your specific index":
            "Do something"

docs