汇总python对excel的基本操作方法

本文详细介绍了如何使用Python的openpyxl库进行Excel的基本操作,包括读取工作表名称、内容,添加、删除工作表,以及将CSV数据导入Excel。同时涵盖了创建、修改和保存Excel文件的功能。
摘要由CSDN通过智能技术生成

汇总python对excel的基本操作方法

一、查询功能

import openpyxl                                                #引入excel的操作模块
wb = openpyxl.load_workbook('example.xlsx')                    #读取excel文件
#功能1:打印工作表名称
sheet_name = wb.sheetnames                                     #下面的代码等价于 sheet_name
                                                               # = wb.get_sheet_names()
                                                               #注意get_sheet_names这个函数在新版python
                                                               #中已经不使用了
print(sheet_name)
#功能2:打印A2位置的内容
sheet = wb['高一一班']                                           #下面的代码等同于sheet = wb.get_sheet_by_name
                                                               # ('高一一班'),该代码已不使用
sheet_content_A2 = sheet['A2'].value                           #读取A2位置的内容
print(sheet_content_A2)
#功能3:打印A2位置的坐标
sheet_content = sheet['A2']
print(str(sheet_content.row) + str(sheet_content.column))      #打印该点坐标,注意横纵坐标的写法输出结果都是整型
print(sheet_content.coordinate)                                #打印该点坐标
#功能4:打印表格的总行数和总列数
sheet = wb['高一一班']
print(sheet.max_row)
print(sheet.max_column)
#功能5:将列数字转换成字母
from openpyxl.utils import get_column_letter
sheet_column_letter = get_column_letter(sheet_content.column)   #打印该点的列字母,需要import函数
print(sheet_column_letter)
#功能6:打印某一行或列的坐标
print(sheet['A'])                                               #获取整个A列的坐标
print(sheet[1])                                                 #获取整个第1行的坐标
print(sheet[1:2])                                               #获取整个第1行到第2行的坐标
#功能7:打印某一行或列的所有值
for cell in sheet[1]:
    print(cell.value)


for row in sheet[1:2]:                                          #打印第1和第2行的所有值
    for cell in row:
        print(cell.value)
功能8:使用python读取excel的工作表名称
import openpyxl                                 #引入excel的操作模块
wb = openpyxl.load_workbook('example.xlsx')     #读取excel文件

#功能1:打印工作表名称
sheet_name = wb.sheetnames         #下面的代码等价于 sheet_name
                                   # = wb.get_sheet_names()
                                   #注意get_sheet_names这个函数在新版python
                                   #中已经不使用了
print(sheet_name)

样表:
在这里插入图片描述
输出结果:

['高一一班', '高一二班', '高一三班']

二、增加功能

# 功能1:在新表格中加入内容
ws = wb.active
ws['A1'] = 43                                        # 在A1中加入数字42
ws.append([1,2,3])                                   # 在下一行的三个单元格中加入1,2,3
# 功能2:加入当前时间
import datetime
ws['A3'] = datetime.datetime.now()
# 功能3:创建文件
wb.save(filename='example2.xlsx')                    # 用save语句最后才能生成excel文件
# 功能4:创建新工作表
wb = openpyxl.load_workbook('example2.xlsx')
wb.create_sheet(index=0,title='first sheet')         # 如果是先录入数值再创建工作表,创建表之前的数据会被消除
wb.create_sheet(index=1,title='second sheet')        # 创建第二张工作表
wb.save('example2.xlsx')

三、删除功能

# 功能1:删除工作表
ws = wb['second sheet']
wb.remove(ws)
wb.save('example2.xlsx')                             # 必须有save语句才会生效

四、其他功能

# 功能1:将CSV中数据导入EXCEL
import openpyxl
import pandas as pd
import matplotlib.pyplot as plt

# 在当前目录下建立一个新excel
wb = openpyxl.Workbook()
print(wb.sheetnames)
ws = wb.active

# 将Iris中的数据转到新建立的excel中
Iris = pd.read_csv('iris.data')
print(Iris[1:3])                                         # 仅打印Iris的1到3行

Iris.columns = ['SepalLengthCm','SepalWidthCm','PetalalLengthCm','PetalWidthCm','Species']
                                                         # 暴力修改列索引的办法,行索引修改办法类似
                                                         # 如果只是修改其中一个索引,简便方法是:
                                                         # Iris.rename(columns={'原索引名称':'新索引名称'})

print(Iris[1:5])

# 通过循环语句将dataframe的内容传入excel中
for i in range(1,149):
    content1 = Iris.loc[i,'SepalLengthCm']                # content的坐标取的是dataframe的位置
    content2 = Iris.loc[i,'SepalWidthCm']                 # 这个写法比较傻,同样的代码写了5次,因为不是工作重点,后续再优化
    content3 = Iris.loc[i,'PetalalLengthCm']
    content4 = Iris.loc[i,'PetalWidthCm']
    content5 = Iris.loc[i,'Species']

    ws['A' + str(i)].value = content1                     # 单元格的坐标取的是excel的位置,所以列的坐标是从'A'开始
    ws['B' + str(i)].value = content2
    ws['C' + str(i)].value = content3
    ws['D' + str(i)].value = content4
    ws['E' + str(i)].value = content5

    i+=1

wb.save('irisdata.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leigh_chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值