Python 自动化 Excel ?这15个技巧要会!

Python学习与数据挖掘

共 2524字,需浏览 6分钟

 ·

2021-07-11 01:53

Python是一种了不起的编程语言。它更容易学习和适应。python中的错误消息是可以很好理解的。我们不需要花费数小时来找到错误消息的解决方案。这就是为什么我喜欢这种编程语言。

我认为这应该是理想的编程语言。编程语言的目标应该是帮助我们构建令人兴奋的产品,而不是在解决错误上浪费时间。

最近,我学习了如何使用python自动化excel任务。我想和更多的朋友分享这些神奇的技巧。你可以使用自己选择的代码编辑器。在本文中,我将使用Jupyter笔记本进行演示。

1、安装所需的库

我们需要安装一个python库openpyxl。在命令提示符中键入以下命令。

pip install openpyxl

2、加载现有工作簿

如果您有一个现有的excel工作簿,并且希望从特定的工作表中读取数据或将数据修改到任何工作表中,则openpyxl提供了一个名为 load_workbook() 的函数,可按如下方式使用。

from openpyxl import Workbook, load_workbook
wb = load_workbook('my_demo_sheet.xlsx')

3、访问工作表

如果要访问活动工作表中的内容。然后工作簿有一个名为active的属性,可以帮助我们指向活动工作表。

ws = wb.active
print(ws)

但是,如果你想指定其他的 sheet,我们可以这样做。

在这里,我从我的excel表访问sheet2。

ws = wb["Sheet2"]

4、访问单元格值

一旦定义了工作表,就可以引用工作表中的任何单元格。

cell_to_access= ws['A5']

为了得到单元格的值,我们必须使用value属性。

cell_value = ws['A5']

5、更改单元格的值

我们可以使用下面的代码行来更改excel表中的任何值。

ws['B1'].value="Second Tab"

我们还需要保存更改,如下所示。

wb.save("my_demo_sheet.xlsx")

6、获取 sheet 名称

如果您想知道工作簿中可用工作表的名称,可以使用下面的python代码行在列表表单中获取工作表的名称。

print(wb.sheetnames)

7、访问其他 sheet

使用.active属性,我们可以访问默认的活动工作表。如果您想访问另一个工作表,那么我们可以按以下操作:

ws = wb["summary"]

8、创建新sheet

要在同一excel工作簿中创建新工作表,可以使用 create_sheet(),如下所示。在修改工作表时,我们需要保存工作簿以将更改应用到excel工作簿。

wb.create_sheet("Index_sheet")
wb.save("test1.xlsx")

9、创建新工作簿

创建一个新的Excel工作簿非常简单。我们需要调用函数Workbook()。由于这是一个新工作簿,我们需要将工作表设置为默认工作表。我们还可以使用title属性更改工作表的名称。

wb = Workbook()

定义默认图纸

ws = wb.active
ws.title = "Demo_data"

10、向工作表中添加数据

一旦定义了工作表,就可以使用append函数添加数据。这将按行添加数据。

ws.append(["This","Is""A""Header"])
ws.save("New_WB.xlsx")

11、添加新行

我们可以使用insert_rows()添加任意数量的行。此函数以行号作为输入。

for i in range(2):
    ws.insert_rows(row_num)

12、删除行

我们可以使用delete_rows()函数删除任何行。此函数以列号作为输入。

for i in range(3):
   ws.delete_rows(col_num)

13、添加新列

如果要插入任何列,那么insert_cols()函数可以使用循环添加任何列。此函数以列号作为输入。

ws.insert_cols(column_number)

14、删除列

若要删除任何列,可以使用delete_cols()函数,将列号作为输入。

ws.delete_cols(column_number)

15、在excel工作表中移动数据

假设您有一个包含数据的excel工作表,并且希望将行或列的任何部分移动到另一个位置。

我们可以使用move_range()来移动数据。此函数接受三个参数—选定的数据、要移动的行数(+N,-N)和要移动的列数(+N,-N)。

ws.move_range("B2:D9", rows=0, cols=2 )

结论

本文到此为止,我们讨论了自动化 excel 任务的不同场景。这些任务也可以在excel中手动完成。但是,如果有一些重复的场景,可以根据需求在这个自动化策略上投入一些时间来节省日常时间。

大家好,最后给大家免费分享 Python 三件套:《ThinkPython》、《简明Python教程》、《Python进阶》的PDF电子版。如果你是刚入门的小白,不用想了,这是最好的学习教材。

现在免费分享出来,有需要的读者可以下载学习,在下面的公众号里回复关键字:三件套,就行。

领取方式:

长按下方扫码,关注后发消息 [三件套]


感谢你的分享,点赞,在看  

浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报