openpyxl学习笔记openpyxl.cell(一)

openpyxl.Workbook(): 创建Excel表格
openpyxl.Workbook.active: 打开Excel一个sheet
Workbook.create_sheet(): 在Excel中新创建一个sheet(在默认的sheet后插入),可重新命名和更改创建默认值(0)
Workbook.title: 默认创建sheet按(sheet1,sheet2…)可用title给sheet命名
Workbook.sheet_properties.tabColor: 设置sheet标题的背景色
Workbook.sheetnames: 获取表格中所有sheet的名字
Workbook.copy_worksheet(): 创建sheet的副本
Workbook.save() :保存表格
openpyxl.load_workbook(): 打开现有工作表

import random
from openpyxl import Workbook
wb=Workbook() #新创建Excel
ws=wb.active   #打开一个sheet
ws.title='new sheet' #改默认sheet的名字为‘new sheet’
ws1=wb.creat_sheet('first')  #新创建一个sheet,并重新命名为first
ws2 = wb.create_sheet("Mysheet", 1) #默认依次在后新建,可以更改默认值
ws.sheet_properties.tabColor = "1072BA"  #设置sheet标题的背景色
source=wb.active
target=wb.copy_worksheet(source) #创建source的副本

#表格数据
#指定sheet的单元格赋值
c=ws['A5']
ws['A5']='Python'
#使用行列表示访问单元格
d=ws1.cell(row=2,column=4,value='hello world')
#访问生产100X100单元格并赋值(可不赋值)
for i in range(1,101):
  for j in range(1,101):
    ws2.cell(row=i,column=j,value=i*j)

#使用切片访问单元格
cell_range=['A2','D6']
for cel in cell_range: #元组数据
	for cl in cel:  #遍历元组数据
		cl.value=random.randint(1,50)  #随机赋值
#使用列访问单元格
colC= ws['C']
for cel in colC:
	cel.value=random.randin(1,50)
	
col_range=ws['C:D']
for cel in col_range:
	for cl in cel:
		cl.value=random.randint(1,50)
		
#使用行访问单元格
row10=ws[10]
row_range=ws[2:9]
#使用Workbook.iter_rows()方法访问单元格
for row in ws.iter_rows(min_row=1,max_col=4,max_row=6):
	for cel in row:
		cel.value=random.randint(1,30)
#使用Workbook.iter_cols()方法访问单元格(在只读模式下不可用)
for row in ws.iter_cols(min_row=1,max_col=4,max_row=6):
	for cel in row:
		cel.value=random.randint(1,30)
		
#遍历所有行或者列可以使用Worksheet.rows /Worksheet.columns
ws['C5']='hello'
print(tuple(ws.rows) #访问A1~C5范围的单元格

#返回单元格的值Worksheet.values
for row in ws.values:
	for value in row:
		print(value)

wb.save('f:/pytest/pyxl.xlsx') #保存Excel

#如果文档保存到 Pyramid, Flask or Django ,需NamedTemporaryFile()
from tempfile import NamedTemporaryFile
from openpyxl import Workbook
wb=Workbook()
with NamedTemporaryFile() as tmp:
wb.save(tmp.name)
tmp.seek(0)
stream=tmp.read()

#存文档为模板template=True

猜你喜欢

转载自blog.csdn.net/weixin_39892788/article/details/89810938