0Pricing
Python Academy · 课时

公式与图表

添加公式和图表

公式与图表 是 CoddyKit 上的免费 Python Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

超越静态值

真实的电子表格会进行计算。openpyxl 可以写入 Excel 公式,在数据变化时重新计算,还可以添加 图表,直接在工作簿中可视化数字。

这样生成的报告对 Excel 用户来说会更像原生功能。

写入公式

公式其实就是一个以 = 开头的字符串。像赋予其他值一样赋值即可:ws['B10'] = '=SUM(B2:B9)'。Excel 会在打开文件时计算它。

openpyxl 会存储公式文本,但不会自行计算结果。

first_row, last_row = 2, 9
formula = '=SUM(B' + str(first_row) + ':B' + str(last_row) + ')'
print('Cell B10 ->', formula)

常用函数

常用的 Excel 函数都可以写成字符串:

  • =SUM(range) 总和
  • =AVERAGE(range) 平均值
  • =MAX(range) / =MIN(range)
  • =COUNT(range) 数字计数

您可以完全按照在 Excel 中输入函数的方式组合它们。

公式不会在 Python 中计算

请注意:如果您写入公式,然后不在 Excel 中打开文件就使用 openpyxl 读回它,得到的是公式文本,而不是数字。要读取计算结果,请先在 Excel 中打开文件,然后使用 data_only=True 加载它。

构建单元格引用

生成公式通常意味着以编程方式构建引用。将列字母与行号组合起来,就能得到一个地址。这只是普通的字符串处理。

col = 'C'
def cell_ref(c, r):
    return c + str(r)

total_formula = '=AVERAGE(' + cell_ref(col, 2) + ':' + cell_ref(col, 11) + ')'
print(total_formula)

添加图表

openpyxl 可以嵌入图表。您可以创建一个图表对象,例如 BarChart(),通过对单元格范围的 Reference 为其提供数据,然后使用 ws.add_chart(chart, 'E2') 将它添加到工作表中。

图表类型包括柱形图、折线图、饼图和散点图。

引用数据

Reference(ws, min_col=2, min_row=1, max_row=6) 会选择图表要读取的单元格。类别(标签)来自另一个引用。正确设置这些范围是关键步骤。

data_rows = 6
ref = {'min_col': 2, 'min_row': 1, 'max_row': data_rows}
print('Chart reads column', ref['min_col'], 'rows', ref['min_row'], 'to', ref['max_row'])

图表标题与坐标轴

设置 chart.title = 'Monthly Sales',并通过 chart.x_axis.title 和 chart.y_axis.title 标注坐标轴。报告中的图表如果带有清晰的标签,就不需要额外说明。

选择图表类型

适用于任何可视化的建议同样适用:使用柱形图比较类别,使用折线图展示趋势,使用饼图表示整体中的各个部分。请选择与报告要回答的问题相匹配的类型。

question = 'how did revenue change month over month'
if 'change' in question or 'trend' in question:
    print('Use a LineChart')
else:
    print('Use a BarChart')

整合起来

典型的报告会先写入数据表,在底部添加总计公式,然后放置一个引用相同数据的图表。打开文件后,Excel 会显示实时更新的总计和可视化结果,而这一切都由 Python 生成。

条件公式

Excel 逻辑函数同样可以写成字符串:=IF(B2>100, 'High', 'Low') 或 =SUMIF(A2:A9, 'North', B2:B9)。这些函数可以让生成的报告进行分类和汇总,而不需要额外运行 Python 处理流程。

请使用与其他公式相同的字符串拼接方式构建它们。

快速检查

测试您对公式和图表的掌握程度。

回顾

现在您已经可以添加逻辑和可视化内容:

  • 将公式写成以 = 开头的字符串;openpyxl 会存储公式,但不会计算公式
  • 在 Excel 计算出结果后使用 data_only=True
  • 根据列字母和行号以编程方式构建引用
  • 使用 BarChart()/LineChart()、Reference 和 ws.add_chart 嵌入图表

常见问题解答

「公式与图表」课时是免费的吗?

是的 — 「公式与图表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「公式与图表」这节课中我会学到什么?

添加公式和图表 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「公式与图表」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 读取工作簿
  2. 写入和设置单元格样式
  3. 公式与图表
  4. 批量处理报告
← 返回 Python Academy