openpyxl.workbook cell使用例子
一、创建Excel
# -*- coding: utf-8 -*-
"""
Created on Fri May 3 15:30:59 2019
@author: 86183
"""
#写一个表格
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
wb = Workbook() #新建表格
dest_filename = 'empty_book.xlsx' #表格名称
ws1 = wb.active #激活sheet
ws1.title = 'range name' #修改sheet的名字为 range name
for row in range(1,40): #30行
ws1.append(range(600)) #每行填充0~599,600数字
ws2=wb.create_sheet(title='Pi') #新建sheet,命名为Pi
ws2['f5']='3.1415926' #给Pi中F5单元格填充文本
ws3=wb.create_sheet(title='Data')
for row in range(10,20): #10~20行
for col in range(27,54): #27~54列
_ = ws3.cell(row=row,column=col,value="{0}".format(get_column_letter(col)))#填充列数对应的字母
print(ws3['AA10'].value)
wb.save(filename=dest_filename) #保存文档命名为dest_filename
二、读取已存在表格数据
#读取已存在表格
from openpyxl import load_workbook
wb=load_workbook(filename='empty_book.xlsx') #读取表格的名称
name=wb.sheetnames #查看表格所有sheet名称
print(name)
sheet_range=wb['range name'] #指定sheet
print(sheet_range['D18'].value) #单元格的值
三、数字格式
import datetime
from openpyxl import Workbook
wb=Workbook()
ws=wb.active
ws['A1']=datetime.datetime(2019,5,4)
print(ws['A1'].number_format) #数字格式
ws['A2']="=SUM(1,1)" #公式
wb.save('formula.xlsx')
四、合并/取消单元格
# -*- coding: utf-8 -*-
"""
Created on Sat May 4 15:50:34 2019
@author: 86183
"""
#合并/取消单元格
from openpyxl.workbook import Workbook
wb=Workbook()
ws=wb.active
ws.merge_cells('A2:C3') #合并单元格
ws.unmerge_cells('A2:C3') #取消合并单元格
#指定范围合并单元格
ws.merge_cells(start_row=2, start_column=4,end_row=5,end_column=8)
#指定范围取消合并
ws.unmerge_cells(start_row=2, start_column=4,end_row=5,end_column=8)
wb.save('mg.xlsx')
五、插入图片,单元格折叠
# -*- coding: utf-8 -*-
"""
Created on Sat May 4 15:50:34 2019
@author: 86183
"""
#单元格插入图片、折叠
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb=Workbook()
ws=wb.active
ws['A1']='you should see three logos below'
img=Image('logo.png') #创建图片
ws.add_image(img,'A2') #插入图片
# B~D 列折叠
ws.column_dimensions.group('B','D',hidden=True)
#2~10 行折叠
ws.row_dimensions.group(2,10,hidden=True)
wb.save('logo.xlsx')