每天十分钟,编程很轻松!大家好,我是码农楠哥。

今天是Python入门课的第三节,上面的视频源是B站,海外的朋友可以前往YouTube观看https://youtu.be/9V5Wgk_v3r8

上节课我们介绍了Python当中的不同的数据类型,今天让我们来看一个对Excel表格进行操作的例子。

很多金融界的从业者(或其他一些相关产业的从业者)经常会遇到这样一个使用场景:每天或者每周要为组里准备一个报表,该报表要从若干个文件中读取一些数据。比如说,某个报表要从三个表格文件中读取数据,然后对这些数据进行一些运算,比如对他们求个平均值,或者把它里面的一些内容进行拼接,最后按固定的格式生成一个报表。对于这样的任务,其实就非常适合用Python程序来解决。这是因为,如果数据源的格式是相对固定的话,那么你写一个Python程序,每天运行一次就可以重复性的完成这项任务,再也不需要每天手动的去粘贴复制。

我们应该先用动态创建一个文件,和以前一样,我们首先要引用包。因为这次我们要从不同的表格里读取数据,所以我们要用openpyxl包里的另外一个函数load_workbook()。该函数可以用于读取已经存在的Excel表格。整个程序要完成如下步骤:

  1. 打开指定的Excel表格。该步骤可以用load_workbook()完成。
  2. 读取指定单元格的数据。读取一个单元格的数据,可以使用ws["A1"].value完成。其中ws保存的是当前活跃的表格,A1是指定的单元格
  3. 将读取的数据输出到屏幕上。我们可以使用以前讲解过得print()函数完成。

整个程序如下:

from openpyxl import load_workbook

stock_wb = load_workbook("stocks.xlsx")
stock_ws = stock_wb.active

aapl = stock_ws["A1"]

print("Today's price is: %s" % aapl.value)

我们还可以将结果输出到另一个新的Excel表格当中。这需要使用我们第一节课讲到的save()函数。比如说,下面的程序将结果写到了一个新的文件当中。

from openpyxl import Workbook
from openpyxl import load_workbook

stock_wb = load_workbook("stocks.xlsx")
stock_ws = stock_wb.active

aapl = stock_ws["B3"]

test_wb = load_workbook("test.xlsx")

wb = Workbook()
wb.active["A1"] = aapl.value
wb.save("report.xlsx")


print("Today's price is: %s" % aapl.value)
print("Another value: %s" % test_wb.active["B2"].value)

以上就是今天的课程。今天这节课我们第一次使用一个更加具象的案例,向大家介绍了如何使用Python来生成固定格式的报表。随着我们学习的深入,我们的Python程序将逐渐可以完成更加复杂、更加智能的任务。

每天十分钟,编程很轻松!我们下次见!