安装Openpyxl
先安装pip 命名
culr https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
安装对应库
pip3 install openpyxl
导入Workbook类
使用openpyxl时,不需要在文件系统上创建文件。只需导入Workbook类并开始工作
先说下概念
工作簿:是整个文件 Workbook
工作表 也就是sheet = wb.Workbook
工作区操作
创建一个Excel
sheet = wb.active
始终至少使用一个工作表创建工作簿。您可以通过使用工作簿获得它。active属性
这在默认情况下被设置为0。除非修改其值,否则使用此方法将始终获得第一个工作表
from openpyxl import Workbook
import time
wb = Workbook()
sheet = wb.active
wb.save('111.xlsx')
创建3个sheet-Workbook.create_sheet()
from openpyxl import Workbook
import time
wb = Workbook()
sheet = wb.active
wb.create_sheet("Mysheet")#默认是最后
wb.create_sheet("Mysheet1",0)#插到最前面
wb.create_sheet("Mysheet2",-1)#插到倒数第二
wb.save('111.xlsx')
设置sheet的名字Worksheet.title
创建工作表时,会自动给它们一个名称。它们按顺序编号(表格,表格1,表格2,…)。您可以随时使用工作表更改此名称。标题属性
from openpyxl import Workbook
import time
wb = Workbook()
sheet = wb.active
wb.create_sheet("Mysheet")#默认是最后
wb.create_sheet("Mysheet1",0)#插到最前面
wb.create_sheet("Mysheet2",-1)#插到倒数第二
sheet.title = "3333"#使用中所以使用sheet
wb.save('111.xlsx')
设置sheet颜色-Worksheet.sheet_properties.tabColor
默认情况下,保持这个标题的标签的背景颜色是白色。可以通过提供RRGGBB颜色代码来更改
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
wb.create_sheet("Mysheet1",0)#插到最前面
sheet.title = "New Title"#使用中所以使用sheet
sheet.sheet_properties.tabColor = "226633"
wb.save('111.xlsx')
打印每一个sheet的名字
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
wb.create_sheet("Mysheet1",0)#插到最前面
sheet.title = "New Title"#使用中所以使用sheet
sheet.sheet_properties.tabColor = "221111"
for sheet in wb:
print(sheet.title)
wb.save('111.xlsx')
拷贝一个工作表 Workbook.copy_worksheet()
您可以在单个工作簿中创建工作表的副本
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
wb.create_sheet("Mysheet1",0)#插到最前面
sheet.title = "New Title"#使用中所以使用sheet
sheet.sheet_properties.tabColor = "221111"
sheet_copy = wb.copy_worksheet(sheet)
wb.save('111.xlsx')
数据操作
单元格输入数据sheet[‘位置’] = 4
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
sheet['A4'] = 4
wb.save('date_opr.xlsx')
单元格输入数据Worksheet.cell()(栅格)
基本形式 sheet .cell(列,行 , 数据)
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
#参数为排 行 数据
sheet.cell(row=4, column=2, value=10)
wb.save('date_opr.xlsx')
无法使用该方式
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
#参数为列,行 , 数据
for x in range(1,101):
for y in range(1,101):
sheet.cell(row=x, column=y,max_row=2)
wb.save('date_opr.xlsx')
切片来访问
cell_range = ws['A1':'C2']
输出行 Worksheet.iter_rows()
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
#参数为列,行 , 数据
sheet.cell(row=4, column=2, value=10)
for row in sheet.iter_rows(min_row=1, max_col=3, max_row=2):
for cell in row:
print(cell)
wb.save('date_opr.xlsx')
输出列Worksheet.iter_cols()
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
#参数为列,行 , 数据
sheet.cell(row=4, column=2, value=10)
for row in sheet.iter_cols(min_row=1, max_col=3, max_row=2):
for cell in row:
print(cell)
wb.save('date_opr.xlsx')
读-sheet中的数值Worksheet.values
如果只需要工作表中的值,则可以使用工作表。属性值。这将遍历工作表中的所有行,但只返回单元格值
from openpyxl import Workbook
import time
wb = Workbook()#创建一个工作簿
sheet = wb.active#在簿中创建一个sheet
#参数为列,行 , 数据
sheet.cell(row=4, column=2, value=10)
for row in sheet.values:
for value in row:
print(value)
wb.save('date_opr.xlsx')
使用数字格式显示时间.number_format,获取时间datetime()
import datetime
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# set date using a Python datetime
ws['A1'] = datetime.datetime(2010, 7, 21)
ws['A1'].number_format
wb.save('11.xlsx')
合并单元格merge_cells()
方式一:
import datetime
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# set date using a Python datetime
ws.merge_cells('A2:D2')
wb.save('11.xlsx')
方式二:
import datetime
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# set date using a Python datetime
ws.merge_cells(start_row=3, start_column=1, end_row=4, end_column=8)
wb.save('11.xlsx')
导入图片Image&&add_image
库需要导入from openpyxl.drawing.image import Image
import datetime
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
# set date using a Python datetime
img = Image('ship.png')
ws.add_image(img,'A1')
wb.save('11.xlsx')
Charts
Charts
- Reference:引用对应行列的数据,参数sheet、坐标、坐标。
- BarChart():柱状图
import datetime
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference, Series
wb = Workbook()
ws = wb.active
# set date using a Python datetime
for i in range(10):
ws.append([i])
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "C1")
wb.save('11.xlsx')