Skip to content

Python✖️表格

金山文档的表格产品中引入了执行 Python 脚本能力,以期为用户提供一种更加灵活、高效的数据处理方式。

提示 📢

经过邀请内测阶段的完善和稳定,PY脚本编辑器正式推出
现在,您可以尽情体验这款基于智能表格&表格之上功能强大的Python编辑器了
无论您是Python新手,还是资深开发者,让我们一同探索这无限可能吧❣️

主要特点

1. 脚本内嵌在文档中

与文档数据无缝结合,跟随文档一同分享协作。

2. 云端工作

云端编码,云端执行,无需本地开发环境。

3. 丰富的第三方库支持

  • 数据操作与分析: Pandas、NumPy
  • 数据可视化: pyecharts
  • 金融数据: akshare、tushare、baostock 等等。

开始使用

使用 Python脚本编辑器前,请先在金山文档上新建或打开一个已有的智能表格表格文件

new_excel

智能表格/表格文件中顶部信息区,选择效率 > PY脚本编辑器

entrace

打开PY脚本编辑器功能的侧边栏后,可以看到文档内已经存在的Python文件和模板
点击新建脚本,创建Python文件,进入Python编辑栏,进行代码编辑
开始之前,也可以点击下面的模板,参考模板示例,了解表格中Python的使用

hometemplate

使用Python访问表格里的数据

注意

金山文档的表格类产品中有工作表数据表的区别,不同的表格类型,读取/写入数据要使用的函数是不同的。

访问工作表数据

在工作表中,可以使用区域选择器,选择要访问的数据范围。在编辑代码的过程中,可以随时通过点击编辑栏上方的操作表格区域,唤起下拉菜单,点击对应函数菜单唤起对应功能区域选择器。

home

也可以直接使用内置的xl()函数,来访问工作表里的数据。例如:若要访问当前工作表的A1到G10单元格,可以使用xl("A1:G10")xl()函数将返回一个包含选区内数据的pandas.DataFrame对象。

python
df = xl("A1:G10")

# 返回表格中A1:G10的数据的pandas.DataFrame对象
print(df)

更多关于xl()函数的用法,请参考附录xl()函数部分的介绍。

访问数据表数据

可以使用内置的dbt()函数,来访问数据表里的数据。例如:若要访问当前数据表的全部数据,可以使用dbt()dbt()函数会返回一个包含数据表内全部记录的pandas.DataFrame对象。

Python
df = dbt()

# 返回一个包含数据表内全部记录的pandas.DataFrame对象
print(df)

更多关于dbt()函数的用法,请参考附录dbt()函数部分的介绍。

回写数据到工作表

可以通过内置的write_xl()函数,将数据回写到工作表。例如,将一个 pandas.DataFrame 类型的对象 df 回写到当前工作表的 A1 位置,可以使用write_xl(df, "A1"),它将在 A1 单元格所在的位置,逐行写入df中的数据。

python
# 将 df 回写到当前工作表的 A1 位置,逐行写入数据
import pandas as pd

nums = [1, 22, 333]
df = pd.DataFrame(nums)

write_xl(df, "A1")

更多关于write_xl()函数的用法,请参考附录write_xl()函数部分的介绍。

回写数据到数据表

数据表组织数据的方式与传统的工作表不同,因此回写数据的方式也有区别:

注意

对数据表的回写,目前函数提供的支持是不完备的。请根据需要酌情使用。

由于数据表中的某些字段类型是对象,这些字段的值在回写时,会被忽略或修改成简单类型。请参考附录数据表字段类型部分的介绍。

1. 添加记录

可以使用insert_dbt()函数,向数据表中添加记录。例如,使用insert_dbt 将一条姓名为张三,年龄为20的记录添加到数据表,它将在当前数据表的末尾添加一条新的记录。

python
insert_dbt({"姓名": "张三", "年龄": 20})

更多关于insert_dbt()函数的用法,请参考附录insert_dbt()函数部分的介绍。

2. 更新记录

可以使用update_dbt()函数,更新数据表中的记录。例如,更新一条IDD的记录,可以使用:

python
update_dbt({"_rid": "D", "年龄": 25})

更多关于update_dbt()函数的用法,请参考附录update_dbt()函数部分的介绍。