@python openpyxl库的详细使用
首先安装包
pip install openpyxl
1.创建一个excel文件
from openpyxl import Workbook
#创建对象
wb = Workbook()
#激活工作表
ws = wb.active
2.打开已有的excel文件
from openpyxl import load_workbook
#创建对象
wb2 = load_workbook('文件名称.xlsx')
#激活工作表
ws = wb.active
1.创建
#默认插入到最后
ws = wb.create_sheet("sheet名称‘’)
#默认插入工作蒲指定位置
#下例为插入到最开始的位置
ws = wb.create_sheet("sheet名称‘’,0)
2.选择表
#可以根据sheet名称去选择
ws = wb["sheet名称"]
ws = wb.get_sheet_by_name("sheet名称")
3.查看表名
#显示所有表名
print(wb.sheetnames)
#用遍历的方式
for sheet in wb:
print(sheet.title)
# 获取工作表的表名
sheet_name = ws.title```
#4.删除工作表
wb.remove(‘工作表名称’)
del wb[‘工作表名称’]
1.单一单元格访问
#通过单元格位置进行访问
data = ws['A1'].value
print(data)
#通过行列值进行访问:从1行1列开始
data = ws.cell(row=1, column=1).value
data =ws.cell(1,1).value
#获取工作表最大行、列
print(sheet.max_row)
print(sheet.max_column)
2.多单元格访问
#通过切片:A1到B5单元格所围成的内容
cell_range = ws['A1':'B5']
for i in cell_range:
for j in i:
print(j.value)
#访问单行
for i in ws['B']:
print(i.value)
#先访问A列再访问B列
for i in ws['A:B']:
for j in i:
print(j.value)
#访问单列
for i in ws['2']:
print(i.value)
#先访问第二列,再访问第三列
for i in ws['2:3']:
for j in i:
print(j.value)
#访问指定的行-行
for i in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for j in i:
print(j.value)
#访问指定的列-列
for i in ws.iter_cols(min_col=1, max_col=2, max_row=3):
for j in i:
print(j.value)
#遍历行
for i in ws.rows:
print(i)
#遍历列
for i in ws.columns:
print(i)
3.根据数字得到列标,根据列标得到数字
from openpyxl.utils import get_column_letter, column_index_from_string
print(get_column_letter(2))
print(column_index_from_string('D'))
#直接对单元格赋值
ws['A1'] = 42
sheet['A6'] = '=SUM(A1:A5)'
#在最后一行的第一列按顺序添加
ws.append([1, 2, 3])
#在指定行列位置添加
ws.cell(row=1, column=1,value='值')
ws.cell(1,1,value='值')
#改变工作表标签按钮颜色
ws.sheet_properties.tabColor = "1072BA"
#字体
from openpyxl.styles import Font, colors, Alignment
color = Font(name='粗线', size=16, italic=True, color=colors.Blue, bold=True)
ws['A1'].font = color
#字体对齐(垂直居中和水平居中)
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')
#设置行高和列宽
ws.row_dimensions[2].height = 40 #第二行
ws.column_dimensions['B'].width = 30 #B列
#合并和拆分单元格(合并/拆分后自有左上角有数据,其他数据会被删除)
sheet.merge_cells('A1:B2')
sheet.unmerge_cells('A1:B2')
#行列变换
rows = [
['uasername', 'passwd', 'url'],
[1, 2, 3],
[4, 5, 6]]
list(zip(*rows))
#会输出
#[('uasername', 1, 4), ('passwd', 2, 5), ('url', 3, 6)]