现在有一个需求,需要使用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')