python针对Excel文件处理

这篇文章介绍了如何使用Python的openpyxl库来处理Excel文件,包括创建工作簿、工作表和单元格,写入数据到单元格,以及读取Excel文件的内容。示例代码演示了创建新Excel文件,写入数据,读取数据以及添加新工作表的操作。
摘要由CSDN通过智能技术生成

一:Excel文件处理介绍:

需要用到第三方库:openpyxl(最常用)、xlrd、xlwt、pandas...

安装第三方库:pip install openpyxl

二:openpyxl模块

openpyxl模块的三大重要组件:

1.工作簿:包含多个工作表

2.工作表:某个数据包含在某个工作表

3.单元格:就是Excel中的单元格

三:Excel的处理:

👉由于对excel的操作是持续性的,所以这里我们直接封装成方法

创建Excel:

import openpyxl  #调用第三方模块

def createExcel():
    #创建一个工作簿
    wk=openpyxl.Workbook()  #这里需要注意的是Workbook开头的W是大写,小写会报错
    #获取当前工作表
    sheet=wk.active
    #写数据到单元格里
    sheet.cell(1,1).value="username"  #在cell中需要传入行,列,具体的值,这里是在第一行,第一列中写入username
    sheet.cell(1, 2).value = "class"  #同上
    sheet.cell(1, 3).value = "like"   #同上
    wk.save("userinfo.xlsx") #这行代码的意思是保存wk工作簿,运用save方法,括号里是给工作簿命名

if __name__ == '__main__':
    createExcel()  #调用该函数实现生成user info.xlsx文件

读取Excel数据:

# 2.读取Excel文件:
def readExcel(filepath):
    #获取工作簿
    wk=openpyxl.load_workbook("userinfo.xlsx")  #用load_workbook来获取工作簿,并输入文件姓名
    #获取工作表:方法一
    sheet1=wk.get_sheet_by_name("Sheet")   #用get_sheet_by_name来获取工作表,括号里是工作表的名称sheet是工作表初始命名
    # #获取工作表方法二:
    # sheet1=wk["Sheet"]  #注意!!!默认的文件名称首字母是大写!!!!找了好久
    #获取单元格坐标
    location=(sheet1.cell(1,1))
    value=sheet1.cell(1,1).value #获取值   
    print(location,value)
    #获取工作表行数及列数
    rows=sheet1.max_row
    cols=sheet1.max_column
    print(f"行数:{rows},列数:{cols}")

if __name__ == '__main__':
    # createExcel()
    readExcel("臆想症.xlsx") 
     #在这里需要填写文件名,如果是在同一层级下,写相对路径即可,否则最好写绝对路径

读取文件中所有的数据:(由于改动了之前的代码,所以这个是全篇)

# 调用 openpyxl第三方库
import openpyxl

def createExcel():
    # 创建一个工作簿,首先最好是封装成一个方法
    wk=openpyxl.Workbook()  #用wk变量去接收后面的值,这里Workbook的W是要大写的
    #获取当前工作簿的工作表
    sheet=wk.active
    #写数据到单元格里
    sheet.cell(1,1).value="班级"
    sheet.cell(1,2).value="姓名"
    sheet.cell(1,3).value="性别"
    sheet.cell(1,4).value="爱好"
    sheet.cell(1,5).value="座右铭"
    sheet.cell(2,1).value="八年二班"
    sheet.cell(2,2).value="帅到惊动联合国"
    sheet.cell(2,3).value="男"
    sheet.cell(2,4).value="学习"
    sheet.cell(2,5).value="一天不学习,浑身难受,夜不能寐"
    sheet.cell(3,1).value="高一一班"
    sheet.cell(3,2).value="财神爷首席大弟子"
    sheet.cell(3,3).value="男"
    sheet.cell(3,4).value="无"
    sheet.cell(3,5).value="我师傅就是最棒的"
    wk.save("臆想症.xlsx")

def readExcel(filepath): #file path在这里是对应添加路径
    #获取工作簿
    wk=openpyxl.load_workbook("臆想症.xlsx") #  用losd_workbook方法获取工作簿
    #获取工作表,方法1
    # sheet1=wk.get_sheet_by_name("sheet")#括号中添加工作表名称,一般是默认sheet
    #方法二
    sheet1=wk["Sheet"]  #注意!!!默认的文件名称首字母是大写!!!!找了好久
    #获取单元格数据
    location=(sheet1.cell(1,1))   #获取单元格坐标
    value=sheet1.cell(1,1).value  #获取对应的值
    print(location,value)
    #获取工作表行数以及列数
    rows=sheet1.max_row
    cols=sheet1.max_column
    print(f"行数{rows},列数{cols }")
    datalist=[]

    #读取文档中所有的数据  用循环来完成
    #行数少的情况下用这个可以,但是不建议
    # for row in range(1,rows+1):   #row代表的是行数 range行数,这里range不包含最大行数,所以要加一
    #     #这里的循环用的是循环行的方法来完成,但是涉及到有很多行的情况下会比较繁琐,所以我们来简化一下代码
    #     value1=sheet1.cell(row,1).value    #row是行数,这里代表的是第一行的值
    #     value2=sheet1.cell(row,2).value    #代表第二行的值
    #     value3=sheet1.cell(row,3).value    #代表第三行的值
    #     value4=sheet1.cell(row,4).value    #代表第四行的值
    #     value5=sheet1.cell(row, 5).value  # 代表第五行的值

#这方法二:
    for row in range(1, rows + 1):
        # 在这里我们去循环它的列数并取值
        for col in range(1,cols+1):#cols代表的是列数 range行数,这里range不包含最大行数,所以要加一
            value=sheet1.cell(row,col).value
            datalist.append(value) #在此之前创建一个datalist的空列表,然后用append的方法添加value进去
    return datalist  #这里返回空列表
def printDataExcel(filepath):
    data=readExcel(filepath)
    print(data)
#由于我们要这个数据运用到其他模块中,所以我满五年可以用字典或列表等方法进行存储
if __name__ == '__main__':
    # createExcel()
    # readExcel("臆想症.xlsx")  #在这里需要填写文件名,如果是在同一层级下,写相对路径即可,否则最好写绝对路径
    printDataExcel("臆想症.xlsx") 

编辑Excel文件:增加一个新的工作表

def editExcel(filepath):   ##任务创建一个新的工作表
    #首先先加载工作簿
    wk=openpyxl.load_workbook("臆想症.xlsx")
    #创建新的工作表
    mysheet=wk.create_sheet("工作表")  #用create_sheet方法进行添加新的sheet,并取名工作表
    mysheet.cell(1,1).value="姓名"
    mysheet.cell(1,2).value="班级"
    wk.save(filepath) #保存
if __name__ == '__main__':
    editExcel("臆想症.xlsx")

整理:在对Excel操作中一定要记得保存文件,也就是xx.save方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值