1.Openpyxl
1.安装第三方库
pip install openpyx
2.Excel基本概念
1.工作簿(workbook):Excel文件
2.工作表(sheet):工作簿的基本单位,每个工作簿至少要有一个工作表
3.单元格(cell):工作表中每个用来保存数据的格子叫单元格
4.行、行号(row):每一行前面的数字(从1开始)
5.列、列号(column):每一列上面的大写字母(也可以用数字)
3.读操作
wb = openpyxl.open("fifles/example.xlsx")
wb = openpyxl.load_workbook('fifles/example.xlsx')
names = wb.sheetnames
sheet1 = wb.active
m_r = sheet1.max_row
m_c = sheet1.max_column
cell1 = sheet1.cell(2, 1)
v1 = cell1.value
new_list = []
for i in range(1, m_r + 1):
cell2 = sheet1.cell(i, 2).value
new_list.append(cell2)
print(new_list)
pai_list = {}
for x in range(1, m_r + 1):
key = sheet1.cell(1, x).value
value1 = sheet1.cell(2, x).value
pai_list[key] = value1
print(pai_list)
for count in range(2, m_r + 1):
pai_list = {}
for cum in range(1, m_c + 1):
key1 = sheet1.cell(1, cum).value
value2 = sheet1.cell(count, cum).value
pai_list[key1] = value2
new_list.append(pai_list)
print(new_list)
3.写操作
import openpyxl
import os
if os.path.exists('fifles/example2.xlsx'):
wb = openpyxl.open('fifles/example2.xlsx')
else:
wb = openpyxl.Workbook()
wb.save('fifles/example2.xlsx')
wb.save('fifles/example2.xlsx')
sheet1 = wb.create_sheet()
sheet2 = wb.create_sheet('student')
if 'teacher' in wb.sheetnames:
sheet2 = wb['teacher']
else:
sheet2 = wb.create_sheet('student')
4.删除操作
if 'teacher' in wb.sheetnames:
wb.remove(wb['student'])
5.单元格内容修改
sheet2.cell(2, 1).value = 'xiaoming'
wb.save('fifles/example2.xlsx')
6.修改样式
import openpyxl
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment
wb = openpyxl.open('files/example.xlsx')
sheet1 = wb['表1']
sheet1.row_dimensions[1].height = 40
sheet1.column_dimensions['A'].width = 20
font1 = Font(
name='黑体',
color='643850',
size=15,
)
sheet1.cell(2, 2).font = font1
fill1 = PatternFill(
fill_type='solid',
start_color='FAFAD2',
end_color='FF7F50'
)
sheet1.cell(1, 1).fill = fill1
ag1 = Alignment(
vertical='center',
horizontal='center'
)
sheet1.cell(1, 2).alignment = ag1
side1 = Side(
border_style='medium',
color='800080'
)
side2 = Side(
border_style='mediumDashed',
color='ff0000'
)
border1 = Border(bottom=side1, top=side1, left=side2, right=side2)
sheet1.cell(2, 4).border = border1
wb.save('files/example.xlsx')