我们可以使用Python调用openpyxl库从而轻松实现对excel文件的读写等处理操作。
数据读取
原始数据
首先,我们要处理的文件数据如下所示:
其中包含订购日期、所属区域、产品类别、数量、销售额、成本这几项。
我们要实现的功能为:从原始数据中找到特定城市和特定日期的数据,并依次按照产品类别、数量、销售额、成本以及利润(即销售额-成本)的形式输出成excel文件。
代码实现读取数据
我们可以使用openpyxl.load_workbook()
方法进行读取,其中由于原始数据中有些数据是公式的形式,读进来成了str类型的,因此我们可以指定data_only=True
,即将所有公式的结果都计算出来并只关注其数据本身。
由于第一行并不是数据,因此我们通过变量i
除掉第一行。
filepath = "./" # 设置文件路径
book = openpyxl.load_workbook(filepath + "数据透视表.xlsx", data_only=True)
sheet = book.worksheets[2] # 读取第三个表单
i = 0
for row in sheet.rows:
if i == 0: # 第一行不要
i = 1
continue
row_val = [col.value for col in row]
if row_val[0].month == int(month) and row_val[1] == city: # 找出特定城市和月份的数据
print(row_val) # test
if row_val[2] not in products:
products.append(row_val[2])
nums.append(row_val[3])
sales.append(float(row_val[4]))
costs.append(float(row_val[5]))
else:
index = products.index(row_val[2])
nums[i