现在有一个需求,需要使用python读取excel,并设置标题及标题样式如何操作呢?下面来详细介绍下。
首先还是使用openpyxl进行加载excel文件。
from openpyxl import load_workbook
wb = load_workbook(filename = '员工统计.xlsx')
当我们读取完成这个文件的时候,第一步就是查看所有sheet,然后指定一个sheet进行操作。
#查看所有sheet名字
sheetname = wb.sheetnames[0]
#指定其中一个sheet
ws = wb[sheetname]
那么又如何获取到excel内容呢?
#获取所有的行和列
content = []
for row in ws.rows:
row_lst=[]
for obj in row:
row_lst.append(obj.value)
content.append(row_lst)
print(content)
#[['姓名', '年龄', '职位'], ['张三', '18', '员工'], ['李省', '19', '员工']]
又如何设置标题呢?
#插入一行,作为标题
ws.insert_rows(1)
#合并单元格
ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=len(content))
ws['A1'] = '员工统计'
最后一步就是设置字体格式并保存啦!
#设置字体为宋体、粗体、斜体、字体大小为 20
font = Font(name=u'宋体', bold=True, italic=True, size=20)
ws['A1'].font = font
#保存
wb.save('员工统计.xlsx')
代码:
from openpyxl import load_workbook
from openpyxl.styles import Font
wb = load_workbook(filename = '员工统计.xlsx')
#查看所有sheet名字
sheetname = wb.sheetnames[0]
#指定其中一个sheet
ws = wb[sheetname]
#获取所有行
for rows in ws.iter_rows():
for row in rows:
print(row.value)
print('================')
#获取所有列--Worksheet.iter_cols()方法在只读模式下不可用。
for cols in ws.iter_cols():
for col in cols:
print(col.value)
print('=================')
#获取所有的行和列
content = []
for row in ws.rows:
row_lst=[]
for obj in row:
row_lst.append(obj.value)
content.append(row_lst)
print(content)
#插入一行,作为标题
ws.insert_rows(1)
#合并单元格
ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=len(content))
ws['A1'] = '员工统计'
#设置字体为宋体、粗体、斜体、字体大小为 20
font = Font(name=u'宋体', bold=True, italic=True, size=20)
ws['A1'].font = font
#保存
wb.save('员工统计.xlsx')