当前位置:首页 > 网站源码 > 正文内容

python3.10(python310怎么进入编程界面)

网站源码1年前 (2023-09-26)266

使用Python开发微软的Excel通常需要使用第三方库,如xlrd、xlwt、xlutils、xlwings、win32com、openpyxl、pandas等,各种第三方库都有自己独特的功能和缺陷,因此在采用这些第三方库之前需要慎重考虑。

如:xlrd只能读取在Excel文件中的数据;xlwt只能在Excel文件中写入数据;xlutils虽然可以读写Excel文件的数据,但是它依赖于xlrd和xlwt;xlwings可以从Excel中调用Python,也可在Python中调用Excel;win32com可以独立读写Excel文件的数据;openpyxl也可以独立读写Excel文件的数据;pandas能够读写在Excel文件中的数据,但是它需要xlrd/xlwt/openpyxl/xlsxwriter等库的配合。

下面介绍两个Python辅助Excel实例,分别是根据指定字符将一列拆分为多列,和根据不同字符将一列拆分为多列。

实例:根据指定字符将一列拆分为多列

01

实例功能

此案例主要通过在while循环中多次使用Python语言的字符串的partition方法,从而实现在工作表中将包含多个指定字符('-')的一列拆分为多列。当运行此案例的Python代码(A325.py文件)之后,将把“员工表.xlsx”文件的员工表的姓名列拆分为分公司列、部门列、组名列、姓名列,代码运行前后的效果分别如图1和图2所示。

展开全文

■ 图1

■ 图2

02

实现代码

import openpyxl

myBook=openpyxl.load_workbook( '员工表.xlsx',data_only= True)

mySheet=myBook.active

#按行获取员工表(mySheet)的单元格数据(myValues)

myValues= list(mySheet.values)

myNewBook=openpyxl.Workbook

myNewSheet=myNewBook.active

myNewSheet.title= '员工表'

myNewSheet.append([ '工号', '分公司', '部门', '组名',

'姓名', '最高学历', '专业', '出生年份'])

#从myValues的第2行开始逐行循环(到最后一行)

formyRow in myValues[ 1:]:

myList=[]

#拼接行(myRow)的第1列单元格的数据

myList+=[myRow[ 0]]

#获取行(myRow)的第2列单元格的数据(即将要拆分的字符串)

myStr=myRow[ 1]

#统计字符'-'的个数

myMax=myStr.count( '-')

myCount= 1

#有多少个指定字符('-')就循环多少次

whilemyCount<=myMax:

#根据指定字符('-')将字符串(myStr)拆分为三个成员

myParts= list(myStr.partition( '-'))

#在列表(myList)中添加第一个成员

myList+=[myParts[ 0]]

#将包含多个指定字符的第三个成员myParts[2]赋值给myStr,

#以进行下次循环(即再次拆分)

myStr=myParts[ 2]

#如果是最后一次循环

ifmyCount==myMax:

#则在列表(myList)中添加第三个成员myParts[2]

myList+=[myParts[ 2]]

#累计循环次数

myCount+= 1

#拼接行(myRow)的第3列及后面的所有单元格数据

myList+=myRow[ 2:]

myNewSheet.append(myList)

myNewBook.save( '结果表-员工表.xlsx')

03

python3.10(python310怎么进入编程界面)

代码说明

在上面这段代码中,while循环用于根据指定字符('-')使用partition方法拆分字符串,例如,字符串“北京分公司-投资部-2组-李松林”包含3个指定字符('-'),因此要循环3次,下面是每次的拆分结果:

此案例的源文件是MyCode\A325\A325.py。

扫码观看讲解视频

实例:根据不同字符将一列拆分为多列

01

实例功能

此案例主要通过使用Python语言的字符串的find方法,从而实现在工作表中根据指定的不同字符(如'年'、'月'、'日'等)将一列的数据(如'1989年2月18日')拆分到多(三)列中。当运行此案例的Python代码(A320.py文件)之后,将把“员工表.xlsx”文件的员工表的出生日期列拆分为出生年份列、出生月份列、出生日列,代码运行前后的效果分别如图3和图4所示。

■ 图3

■ 图4

02

实现代码

import openpyxl

myBook=openpyxl.load_workbook( '员工表.xlsx',data_only=True)

mySheet=myBook.active

#按行获取员工表(mySheet)的单元格数据(myValues)

myValues=list(mySheet.values)

myNewBook=openpyxl.Workbook

myNewSheet=myNewBook.active

myNewSheet.title= '员工表'

myNewSheet.append([ '工号', '部门', '姓名', '最高学历',

'专业', '出生年份', '出生月份', '出生日'])

#从myValues的第2行开始逐行循环(到最后一行)

formyRow inmyValues[ 1:]:

myList=[]

#拼接行(myRow)的第1列到第5列之间的单元格数据

myList+=myRow[ 0:5]

#获取行(myRow)的第6列(出生日期列)的单元格数据

myDate=myRow[ 5]

#查询字符'年'在出生日期字符串(如‘1989年2月18日’)的位置(索引)

myYearPos=myDate.find( '年')

#获取年份字符串(如‘1989年’)

myYear=myDate[ 0:myYearPos+1]

#查询字符'月'在出生日期字符串的位置(索引)

myMonthPos=myDate.find( '月')

#获取月份字符串(如‘2月’)

myMonth=myDate[myYearPos+ 1:myMonthPos+1]

#获取出生日字符串(如‘18日’)

myDay=myDate[myMonthPos+ 1:]

#在列表(myList)中添加年份、月份、出生日

myList+=[myYear,myMonth,myDay]

myNewSheet.append(myList)

myNewBook.save( '结果表-员工表.xlsx')

03

代码说明

在上面这段代码中,myYearPos=myDate.find('年')表示查找字符‘年’在字符串myDate (如'1989年2月18日')的索引位置。myYear=myDate[0:myYearPos+1]表示根据索引位置在字符串myDate中获取子字符串myYear,0表示子字符串的起始位置,myYearPos表示子字符串的结束位置,如'1989年'。

此案例的源文件是MyCode\A320\A320.py。

04

补充说明

阅读和使用本书案例要求读者具备一定的Python语言编程基础和操作Excel的基本常识,关于Python语法基础可以参考 Python 基础语法教程(https://www.runoob.com/python/python-basic-syntax.html)。

扫码观看讲解视频

05

源代码下载

关注微信公众号,后台回复关键词 “Python辅助ExcelV081” 即可获得完整源代码。

06

参考书籍

《Python辅助Word+Excel:让办公更高效》

作者:罗帅、罗斌

定价:99.8元

扫码优惠购书

347个典型办公场景

问题描述+解决方案+真实源码+效果截图

Python+Word+Excel实现办公自动化,

成倍提高办公效率

优化数据分析,让工作省点力!

告别重复劳动,蜕变职场精英!

扫描二维码推送至手机访问。

版权声明:本文由我的模板布,如需转载请注明出处。


本文链接:http://sdjcht.com/post/32363.html

标签: python3.10
分享给朋友:

“python3.10(python310怎么进入编程界面)” 的相关文章

apk编辑器修改包名后安装不了(apk编辑器修改包名后不能用)

apk编辑器修改包名后安装不了(apk编辑器修改包名后不能用)

今天给各位分享apk编辑器修改包名后安装不了的知识,其中也会对apk编辑器修改包名后不能用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、apk编辑器修改应用...

直播声卡驱动(直播声卡驱动安装不了)

直播声卡驱动(直播声卡驱动安装不了)

本篇文章给大家谈谈直播声卡驱动,以及直播声卡驱动安装不了对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、so8声卡连苹果手机直播间咋不出话筒声 2、用电脑直播怎样连接外...

怎么查看数据库是否锁表(如何查看数据库是否锁表)

怎么查看数据库是否锁表(如何查看数据库是否锁表)

今天给各位分享怎么查看数据库是否锁表的知识,其中也会对如何查看数据库是否锁表进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、怎么查看数据库锁表? 2、如何...

神武藏宝阁手游交易平台(易手游神武藏宝阁下载)

神武藏宝阁手游交易平台(易手游神武藏宝阁下载)

本篇文章给大家谈谈神武藏宝阁手游交易平台,以及易手游神武藏宝阁下载对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、藏宝阁交易安全吗 2、神武藏宝阁安全吗? 3、藏宝...

4399弹弹堂账号交易平台(4399弹弹堂交易平台官网)

4399弹弹堂账号交易平台(4399弹弹堂交易平台官网)

今天给各位分享4399弹弹堂账号交易平台的知识,其中也会对4399弹弹堂交易平台官网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、4399弹弹堂号在哪租...

手游怎么代理加盟赚钱吗(手游加盟代理哪家做的最好)

手游怎么代理加盟赚钱吗(手游加盟代理哪家做的最好)

本篇文章给大家谈谈手游怎么代理加盟赚钱吗,以及手游加盟代理哪家做的最好对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、代理游戏赚钱吗 2、手游代理赚钱吗,好做不?...