Skip to content
本页内容

xl() 函数

可以通过内置的xl()函数访问工作表中的数据。

函数签名

python
def xl(range: str = "",
       headers: bool = False,
       sheet_name: str | list[str] = "",
       book_url: str = "",
       start_row: int | None = None,
       start_column: int | None = None,
       end_row: int | None = None,
       end_column: int | None = None,
       formula: bool = False) -> __pd.DataFrame | dict[str, __pd.DataFrame]: ...

参数列表

参数类型默认值说明
rangestr空字符串工作表中的选区描述。
默认为工作表中已经使用的区域。
headersboolFalse是否将当前选区第一行处理为表头。
sheet_namestr or list空字符串选区所在的工作表名称,可为多个。
默认为当前激活的工作表。
如果为None则返回全部工作表数据。
book_urlstr空字符串选区所在的表格文件地址。
必须为金山文档云文档地址。
默认当前表格。
start_rowintNone选区左上单元格的行,从0开始
start_columnintNone选区左上单元格的列,从0开始
end_rowint空值选区右下单元格的行,从0开始
end_columnint空值选区右下单元格的列,从0开始
formulaboolFalse是否返回单元格内的公式内容

示例

以下示例会使用到如下虚拟的进销存表格,并假设当前正在打开的是工作表1(激活状态)。

提示

表格中的数据均虚构,仅做示例使用。

examples

1. 获取当前工作表(工作表1)中的所有数据,无表头。

python
# 相当于 df = pandas.DataFrame(columns=None, data={全部数据})
df1 = xl()

# 由于无表头,只能按照索引访问 df 中的数据
# 下边这条语句会输出“产品名称”
print(df1[0][0])

2. 获取当前工作表(工作表1)中,A1:C5区域的数据,将第一行处理为表头。

python
# 相当于 df = pandas.DataFrame(columns=[A1:C1], data=[A2:C5])
df2 = xl("A1:C5", headers=True)

# 可以通过列名来索引 df 中的数据
df2_subset = df[['产品名称', '发货日期']]

3. 获取工作表2(当前激活为工作表1)中,A1:G10区域的数据,将第一行处理为表头。

python
# 相当于 df = pandas.DataFrame(columns=[A1:G1], data=[A2:G10])
df3 = xl("A1:G10", headers=True, sheet_name="工作表2")

4. 获取其它表格文档(https://kdocs.cn/l/foo)中,工作表3的前10行数据,第一行作为表头。

python
df4 = xl(
    range="1:10",
    headers=True,
    sheet_name="工作表3",
    book_url="https://kdocs.cn/l/foo",
)

5. 获取当前表格中,所有工作表数据。

python
# 此时将返回一个 dict[str, pandas.DataFrame] 类型的 ds
# ds 的 key 为工作表名称
ds = xl(
    headers=True,
    sheet_name=None,
)

df5 = ds['工作表1']

6. 获取当前表格(工作表1)中所有售价及发货日期数据

python
df6 = xl(
    start_row=0,
    start_column=1,
)