前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操控Excel:使用Python在主文件中添加其他工作簿中的数据

Python操控Excel:使用Python在主文件中添加其他工作簿中的数据

作者头像
fanjy
发布2022-11-16 14:09:27
7.8K0
发布2022-11-16 14:09:27
举报
文章被收录于专栏:完美Excel

标签:Python与Excel,合并工作簿

本文介绍使用Python向Excel主文件添加新数据的最佳方法。该方法可以保存主数据格式和文件中的所有内容。

安装库

本文使用xlwings库,一个操控Excel文件的最好的Python库。在终端使用下面的命令安装:

pip install xlwings

示例文件

本文用到了两个示例Excel工作簿:

主文件.xlsx

新数据.xlsx

可以到知识星球App完美Excel社群下载。

使用主文件

可以使用xlwings打开Excel文件。执行下面的代码(如下图1),将打开Excel主文件。

图1

主文件内容如下图2所示。

图2

可以看出:

1.主文件包含两个工作表,都含有数据。

2.每个工作表都有其格式。

3.想要在每个工作表的最后一行下面的空行开始添加数据。如图2所示,在“湖北”工作表中,是在第5行开始添加新数据。

使用Python很容易获取所有Excel工作表,如下图3所示。注意,它返回一个Sheets对象,是Excel工作表的集合,可以使用索引来访问每个单独的工作表。要获取工作表名称,只需调用.name属性。

图3

接下来,要解决如何将新数据放置在想要的位置。

这里,要将新数据放置在紧邻工作表最后一行的下一行,例如上图2中的第5行。那么,我们在Excel中是如何找到最后一个数据行的呢?可以先选择单元格A1,然后按下Ctrl+向下箭头键,则会移至最后一行(对于图2所示的工作表来说是第4行)。

下面的代码可以获取最后一行,如下图4所示。

图4

打开并读取新数据文件

打开新数据文件,从中获取所有非空的行和列中的数据。使用.expand()方法扩展单元格区域选择。注意,从单元格A2开始扩展,因为第1列为标题行。

图5

我们得到了一个列表。这两个省都在列表中,让我们将它们分开,并从每个子列表中删除省份。以湖北为例。这里我们使用列表解析,这样可以避免长循环。

图6

将数据转到主文件

下面的代码将新数据工作簿中的数据转移到主文件工作簿中:

图7

上述代码运行后,主文件如下图8所示。

图8

可以看到,添加了新数据,但格式不一致。

转换新数据区域的格式

从第2行复制单元格格式,并仅将格式粘贴到数据区域的其余部分。如下图9所示的代码。

图9

结果如下图10所示。

图10

注意,复制/粘贴也将复制其它格式。如果日期格式不同,以按如下方式更改它们的格式:

master_wb.sheets[0].range('A5:A6').number_format = 'mm/dd/yyyy'

注:本文学习整理自pythoninoffice.com,供参考。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档