让繁琐的工作自动化——python 处理Excle文件

让繁琐的工作自动化——python 处理Excle文件

今天收到一个省市县区的Excle表格,想着整理一下数据,将信息整理为层级关系(省–>市–>(县/区))存到字典里,以备不时之需。
打开一看,MD,3千行数据,这TM要搞到神马时候。
在这里插入图片描述
在这里插入图片描述


叮铃铃~~~~ 叮铃铃 ~~~~,人生苦短,我用python。开搞!!!


openpyxl的基础使用

环境

1.pycharm2020.1
2.python3.8
3.openpyxl 2.1.4

openpyxl已经更新到3点多了,我这里演示的是openpyxl 2.1.4

导入openpyxl模块

import openpyxl

读取操作

打开要处理的文件,该函数需要传入一个文件路径。wb是一个Workbook对象。

wb = openpyxl.load_workbook("省市县区.xlsx")

Excel文档有多个sheet组成。

获得Excel文档所有sheet。

sheetList = wb.get_sheet_names()

根据sheet名字获取对应表。表由一个Worksheet对象表示,sheet就是一个Worksheet对象。

sheet = wb.get_sheet_by_name("sheet名字")

取得sheet表格中的值
数值定位:row是行号,column是列号。
字符定位:Excle用字母表示列,数字表示行。

x = sheet.cell(row=1, column=1).value #第一种表示
y = sheet['A1'].value #第二种表示

列字母和数字之间的转换。

openpyxl.cell.column_index_from_string()   #字母---->数字
openpyxl.cell.column_letter()                        #数字---->字母

获取sheet有多大。

sheet.get_highest_row()        #返回行数
sheet.get_highest_column()  #返回列数

遍历sheet

for i in range(1, sheet.get_highest_row()  + 1):
    for j in range(1, sheet.get_highest_column()  + 1):
        print(str(sheet1.cell(row=i, column=j).value) + " ", end="")
    print()

写入操作

创建新的Workbook对象。

wb = openpyxl.Workbook()

保存文件。(传入文件名)

wb.save("haha.xlsx")

创建sheet,index表示sheet的次序,title表示sheet的名字。

wb.create_sheet(index=0,title='haha')

删除sheet,需要传入Worksheet对象,如果知道sheet的名字,就可使用以下代码删除

wb.remove_sheet(wb.get_sheet_by_name("sheet名字"))

写入数据

sheet.cell(row=1, column=1) = x #第一种表示
sheet['A1'] = y #第二种表示

处理表格的源码

原表格公众号回复【省市】获得

import pprint
import openpyxl
wb = openpyxl.load_workbook("省市县区.xlsx")
sheet = wb.get_sheet_by_name("省市县区")
data = {}

for i in range(2, sheet.get_highest_row() + 1):
    province = sheet.cell(row=i, column=1).value
    city = sheet.cell(row=i, column=2).value
    county = sheet.cell(row=i, column=3).value
    data.setdefault(province, {})
    data[province].setdefault(city, [])
    if data[province][city].count(county) == 0:
        data[province][city].append(county)

print("数据整理完毕,开始写入文件")
with open("cityInfo.py", "w", encoding='utf-8') as file:
    file.write("cityInfo = " + pprint.pformat(data))
print("文件写入完毕")

作者info
作者:DebugWuhen
原创公众号:『DebugWuhen』,专注于记录有趣的编程技术和有益的程序人生,期待你的关注。
转载说明:务必注明来源(注明:来源于公众号:DebugWuhen, 作者:DebugWuhen)
在这里插入图片描述

### 回答1: Python繁琐工作自动化第2版 是一本介绍如何使用 Python 编程语言来自动化繁琐工作的书籍。Python 是一种易于学习和使用的编程语言,它具有简洁而强大的语法,能够轻松处理各种任务。 这本书的第二版扩展了第一版的内容,提供了更多的示例和实用技巧,帮助读者更好地理解和应用 Python 自动化Python 编程可以帮助我们在处理繁琐任务时节省时间和精力。比如,在文档处理方面,可以使用 Python 自动化程序来批量处理文件,例如批量重命名文件、批量转换文件格式,甚至批量提取文本内容等。在数据处理方面,我们可以使用 Python 编程来读取、处理和分析大量的数据,自动生成结果报告或者图表。 此外,Python自动化能力也可以应用于网络操作。比如,可以使用 Python 程序来自动化网页抓取,实现数据的自动采集和分析。还可以使用 Python 编程实现自动发送邮件、自动登录网站等。 总之,Python繁琐工作自动化第2版 是一本有关 Python 自动化编程的实用书籍,它通过大量的示例和案例,帮助读者学会使用 Python 编程语言解决各种繁琐任务。使用 Python 编程语言,我们能够更高效地处理繁琐工作,节省时间和精力,提高工作效率。 ### 回答2: 《Python繁琐工作自动化第2版》是一本介绍如何使用Python语言进行自动化工作的教材。Python作为一种高级编程语言,有着简洁、易读、易学的特点,非常适合用于编写自动化脚本。 这本书主要教读者如何使用Python去解决繁琐重复性工作。通过学习Python基础知识和相关库、模块的应用,读者能够编写脚本来完成一些常规操作,例如文件处理、数据分析、网页爬取等任务。这样可以极大地提高工作效率,减少人为的错误和时间浪费。 书中首先介绍了Python语言的基础概念和语法,帮助读者快速入门。然后,通过具体实例和案例,一步一步讲解如何利用Python编写自动化脚本。读者将学会使用Python处理文件文件夹、读写Excel和CSV文件、操作数据库、发送电子邮件等。 此外,书中还涵盖了更高级的内容,如如何自动化网页操作、使用Python进行数据分析和可视化、利用Python技术进行网络爬虫等。这对于那些希望进一步深入学习和应用Python的读者来说非常有用。 总而言之,《Python繁琐工作自动化第2版》以简明易懂的语言,通俗易懂的案例来讲解自动化脚本的编写,使读者能够快速上手,提高工作效率,减少重复性劳动。这本书对于那些希望利用Python进行工作自动化的人士来说,是一本不可或缺的读物。 ### 回答3: 《Python繁琐工作自动化第2版》是一本关于使用Python编程语言来自动化处理繁琐工作的书籍。Python是一种功能强大且易于学习的编程语言,它具有丰富的库和工具,使得编写自动化脚本变得更加简单和高效。 这本书提供了详细的指导和实例,教读者如何使用Python处理各种常见的繁琐工作。它涵盖了许多方面的自动化,如文件文件夹操作、Excel数据处理、PDF操作、Web数据提取、自动发送电子邮件等等。通过学习本书,读者将能够掌握Python编程的基本知识,并学会如何将其应用于实际场景中。 其中,针对《Python繁琐工作自动化第2版》中提到的PDF操作,读者将学习如何使用Python来读取、编辑和生成PDF文件。这对于经常处理PDF文档的工作人员来说尤为重要。使用Python,可以轻松地从PDF中提取文本、图像和表格数据。还可以通过Python来合并、拆分和重命名PDF文件,进行文件的批量处理。另外,利用Python的PDF库,还可以对PDF进行进一步的自定义处理,如添加水印、加密和解密、页面旋转等。 总而言之,《Python繁琐工作自动化第2版》为读者提供了一种利用Python编程语言来自动化处理各种繁琐工作的方法和技巧。通过学习本书,读者能够节省大量的时间和精力,提高工作效率,提升自己在数字化时代的竞争力。无论是对于初学者还是有一定编程基础的人来说,本书都是一本值得推荐的实用指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值