excel是以工作簿为单位进行存储的,excel里工作簿名称可以是变量吗

首页 > 实用技巧 > 作者:YD1662023-10-29 11:12:32

在图3-5中,每1份销售发票文件均由每位员工各自整理而成,其中1张工作表仅对应1张发票,而1份文件中可能会包含多张工作表,如图3-6所示。

excel是以工作簿为单位进行存储的,excel里工作簿名称可以是变量吗(13)

从这些销售发票文件中,读取图3-4所示范围内的数据,生成CSV格式的清单文件salesList.csv,如图3-7所示。

excel是以工作簿为单位进行存储的,excel里工作簿名称可以是变量吗(14)

一起来详细分析程序的代码吧。因为这里会对程序代码进行反复阅读比较,所以在拥有可以使用计算机的条件时,用Visual Studio Code阅读示例程序会更加方便。下载示例文件,并找到“第3章”下的python_prg文件夹,使用Visual Studio Code打开该文件夹,即可阅读程序sales_slip2csv.py。

程序各行代码的具体含义,将会在本章后半部分进行讲解,现在仅需关注代码中的要点,理清程序使用什么方法进行了怎样的操作,把握住整体的处理流程就可以了。

代码3-1 sales_slip2csv.py

1 import pathlib # 标准库

2 import openpyxl # 外部库

3 import csv # 标准库

4 5

6 lwb = openpyxl.Workbook # 生成销售清单的工作簿lwb

7 lsh = lwb.active # 获得默认生成的工作表

8 list_row = 1

9 path = pathlib.Path("..\data\sales") #指定相对路径

10 for pass_obj in path.iterdir:

11 if pass_obj.match("*.xlsx"):

12 wb = openpyxl.load_workbook (pass_obj)

13 for sh in wb:

14 for dt_row in range(9,19):

15 if sh.cell(dt_row, 2).value! =None:

16 lsh.cell(list_row, 1).value =sh.cell(2, 7).value

17 lsh.cell(list_row, 2).value =sh.cell(3, 7).value

18 lsh.cell(list_row, 3).value =sh.cell(4, 3).value

19 lsh.cell(list_row, 4).value =sh.cell(7, 8).value

20 lsh.cell(list_row, 5).value =sh.cell(dt_row, 1).value

21 lsh.cell(list_row, 6).value =sh.cell(dt_row, 2).value

22 lsh.cell(list_row, 7).value =sh.cell(dt_row, 3).value

23 lsh.cell(list_row, 8).value =sh.cell(dt_row, 4).value

24 lsh.cell(list_row, 9).value =sh.cell(dt_row, 5).value

25 lsh.cell(list_row, 10).value =sh.cell(dt_row, 4).value * \

26 sh.cell(dt_row, 5).value

27 lsh.cell(list_row, 11).value= sh.cell(dt_row, 7).value

28 list_row = 1

29

30with open("..\data\sales\salesList.

csv","w",encoding="utf_8_sig") as fp:

31 writer = csv.writer(fp,linetermi nator="\n")

32 for row in lsh.rows:

33 writer.writerow([col.value for col in row]) #列表推导式

代码3-1的第一行的import pathlib语句,导入了标准库pathlib。使用pathlib可以更方便地在程序中进行文件及文件夹路径的相关操作②。

当编写的程序会进行文件操作时,请务必尝试使用该库。

路径是指示电脑中特定资源所在位置的字符串。该字符串在程序中,用于展示存储(硬盘或SSD)中文件或文件夹(目录)的位置。

第2行加载的openpyxl是用于处理Excel文件的库。因为openpyxl是外部第三方库,所以在使用之前需要事先进行安装③。另外,最终需要输出csv文件,因此在第3行加载了csv的标准库。

excel是以工作簿为单位进行存储的,excel里工作簿名称可以是变量吗(15)

哦对啦,关于Python和Excel学习的秘籍就是《Excel×Python智能高效办公》,快来参与抽奖获得书籍吧~

excel是以工作簿为单位进行存储的,excel里工作簿名称可以是变量吗(16)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.