对比Excel学openpyxl系列之基础设置

打开文件

#打开excel
from openpyxl import load_workbook
wb=load_workbook(r'C:\Users\mac\Desktop\test.xlsx')
wb

在Python中要打开一个工作簿,可以使用openpyxl库中的load_workbook()函数,load_workbook()会把整个工作簿中的所有内容都导入进来,还可以用pandas进行导入。

import pandas as pd
df=pd.read_excel(r'C:\Users\mac\Desktop\test.xlsx')
df
#已经将工作簿dataset的第一个Sheet中的内容读

既然load_workbook()和read_excel()都可以对文件进行读取,那两者有什么区别呢?

  • 使用read_excel()读取的数据可以实时显示在界面上,而load_workbook()不可以。
  • 对有多个Sheet的工作簿,load_workbook()可以一次性全部读取,而read_excel()一次只能读取其中一个Sheet,且默认读取第一个Sheet中的内容。如果要读取其他Sheet中的内容,则-通过参数sheet_name指明要读取的Sheet名。
df=pd.read_excel(r'C:\Users\mac\Desktop\test.xlsx',sheet_name='sheet2')

赋值方式

#创建新的工作簿
from openpyxl import Workbook
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet
ws['A1']=1#给单元格a1赋值1
ws['A2']=2#给单元额a2赋值2
wb.save(r'C:\Users\mac\Desktop\test1.xlsx')#保存工作簿


# 其他的赋值方法

#创建新的工作簿
from openpyxl import Workbook
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet
ws.cell(row=1,column=1).value=1#第一行第一列赋值为1
ws.cell(row=3,column=3).value=3#第三行第三列赋值为1
wb.save(r'C:\Users\mac\Desktop\test1.xlsx')#保存工作簿

# 对一行单元格进行赋值
from openpyxl import Workbook
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet
ws.append([1,2,3,4])
wb.save(r'C:\Users\mac\Desktop\test1.xlsx')#保存工作簿

# 循环插入多行数据
from openpyxl import Workbook
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet
#循环插入
data=([1,2,3],[4,5,6],[7,8,9])
for row in data:
    ws.append(row)
wb.save(r'C:\Users\mac\Desktop\test1.xlsx')#保存工作簿

Pandas与openpyxl之间的转换

# pandas 格式到 openpyxl
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
df=pd.read_excel(r'C:\Users\mac\Desktop\test1.xlsx')

wb=Workbook()
ws=wb.active

for r in dataframe_to_rows(df,index=True,header=True):
    ws.append(r)
wb.save(r'C:\Users\mac\Desktop\test2.xlsx')

#index:是否需要将dataframe的索引列插入,header表示是否需要将dataframe的表头插入

sheet的相关操作

# sheet相关操作
from openpyxl import Workbook
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet
ws1=wb.create_sheet()#新建一个sheet
ws2=wb.create_sheet('命名sheet')#重命名sheet
ws3=wb.create_sheet('改名字后位置在第一个sheet',1)#新建在第一个sheet
ws4=wb.copy_worksheet(ws2)#讲ws2复制到ws3

wb.remove(ws3)#移除掉ws3

wb.save(r'C:\Users\mac\Desktop\test3.xlsx')#保存工作簿

猜你喜欢

转载自blog.csdn.net/weixin_41867184/article/details/125543679
今日推荐