openpyxl库

本文详细介绍了使用Python的openpyxl库进行Excel文件操作,包括创建新工作簿、打开文件、操作工作表、单元格操作、公式应用、格式设置以及vlookup功能的运用,展示了如何在Python中处理Excel数据的常见操作。
摘要由CSDN通过智能技术生成
1、建立新文件并保存到指定路径
from openpyxl import Workbook
wb = Workbook() #创建一个新的工作簿
ws=wb.active
print(ws.title)
wb.save(r'E:\个人资料\编程\python\数据文件\test.xlsx')
2、打开路径的excel文件
from openpyxl import Workbook,load_workbook
wb = load_workbook(r'E:\个人资料\编程\python\数据文件\test.xlsx')
ws = wb.active
print(ws.title)

print(ws.max_row)
print(ws.max_column)
print(ws.dimensions)

3、操作工作表(sheet)

from openpyxl import *
wb=Workbook()
ws1=wb.active
# print(ws1.title)

ws2=wb.create_sheet('new1',1)
ws3=wb.create_sheet('new2',2)

#移动工作表,注意参数是ws3,不是new2
wb.move_sheet(ws3,-1)
#删除工作表,注意括号中是表的名字
del wb['new2']

print(wb.sheetnames)

4、访问单元格

from openpyxl import Workbook
import pandas as pd

wb=Workbook()
ws=wb.active
cell=ws.cell(6,1,'hello')  #第六行第一列,值为hell0

for l in range(1,6):
    for h in range(1,11):
        ws.cell(h,l,(l-1)*10+h)
wb.save('3.访问单元格.xlsx')
# print(cell.value)
# print(cell.row)
# print(cell.column)
# print(cell.column_letter)
# print(cell.coordinate)   #结果为A6


#遍历指定单元格
for cells in ws['a2:c4']:
    for cell in cells:
        print(cell)

# df = pd.read_excel('3.访问单元格.xlsx',header=None)
# df.columns=['a','b','c','d','e']
# df.to_excel('3.访问单元格.xlsx')
# print(df.head())

5、操作单元格

from openpyxl import Workbook
import pandas as pd

wb=Workbook()
ws=wb.active

#写入10*10的一个数据矩阵
for l in range(1,11):
    for h in range(1,11):
        ws.cell(h,l,(l-1)*10+h)

# ws.merge_cells('b2:d4')
# ws.insert_cols(2,3)     #表示从第二列开始插入三列
# ws.insert_rows(3,2)
#删除操作,和插入一样
# ws.delete_cols()
# ws.delete_rows()

ws.move_range('c4:d5',2,-1)   #表示向下移动两行,向前移动一列

wb.save('4.操作单元格.xlsx')

df = pd.read_excel('4.操作单元格.xlsx',header=None)
print(df)

6、excel公式操作

from openpyxl import Workbook
from openpyxl.utils import FORMULAE
from openpyxl.formula.translate import Translator   #引入,复制公式
import pandas as pd


wb=Workbook()
ws=wb.active

print(len(FORMULAE))   #结果是352,表明有352个可用的公式

print('SUM' in FORMULAE)  #结果是True,表明Sum公式是可用的

#下边的代码是创建基本的价格数据,3行2列
ws.append(['价格1','价格2','求和','均值'])
ws.append([11,13])
ws.append([21,15])
ws.append([24,33])

ws['c2']='=SUM(A2:B2)'
ws['d2']='=AVERAGE(A2:B2)'
#c3单元格用C2的公式
ws['c3']=Translator(formula='=SUM(A2:B2)',origin='c2').translate_formula('c3')


#使用循环遍历单元格
for cells in ws['c2:c4']:
    cells[0].value=Translator(formula='=SUM(A2:B2)',origin='c2').translate_formula(cells[0].coordinate)
for cells in ws['d2:d4']:
    cells[0].value=Translator(formula='=AVERAGE(A2:B2)',origin='d2').translate_formula(cells[0].coordinate)

wb.save('5.使用公式.xlsx')

df=pd.read_excel('5.使用公式.xlsx')
print(df)
#
for cells in ws['a2:d4']:
    for cell in cells:
        print(cell.value)

7、设置格式


from openpyxl.styles import Font,Alignment   #Alignment用于对齐
from openpyxl import Workbook,load_workbook
wb = load_workbook('6.设置格式.xlsx')
ws=wb.active

# ws['a1'].font=Font(name='微软雅黑',color='0000FF',bold=True,strike=True,italic=True)
# ws['a1:c3']语法错误

for cell in ws['a1:c3']:
    for i in range(3):
        cell[i].font=Font(name='微软雅黑',color='0000FF',bold=True,strike=True,italic=True)

#设置行高和列宽
ws.row_dimensions[2].height=30
ws.column_dimensions['b'].width=30

wb.save('6.设置格式.xlsx')

8、vlookup功能

import pandas as pd
from openpyxl import Workbook

df=pd.read_excel(r'E:\Desktop\每日交易策略.xlsx',sheet_name='Sheet2')
df1=pd.read_excel(r'E:\Desktop\每日交易策略.xlsx',sheet_name='Sheet3')
df['辅助列']=df['材料名称'] + df['型号']
m_column=df.pop('辅助列')
df.insert(0,'辅助列',m_column)

df1['辅助列']=df1['材料名称'] + df1['型号']
m_column1=df1.pop('辅助列')
df1.insert(0,'辅助列',m_column)
# print(df)
# print(df1)

new_table=df.merge(df1,how='left',on='辅助列')
print(new_table)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值