【基础扎实】Python操作Excel三模块

一、OpenPyXL

比较习惯用这个来写公式,配合循环。

from openpyxl import load_workbook

book = load_workbook(excel_file_path)
sheet = book['sheet1']
for ind in range(1, sheet.max_row+1):
    sheet['B'+str(ind)] = '=VLOOKUP(E{}, sheet2!B:F, 3, 0)'.format(ind)

另外,一些excel文件的美化,格式设置也都是有的:from openpyxl.styles import Font, colors, Alignment


二、xlwings

这个库很精致,具体去看 官网.

初始化设置:

import xlwings as xw

# 初始化设置
app = xw.App(visible=False, add_book=True)

wb = app.books.open(excel_file_path)

# do_sth_ ...

# 保存关闭&退出后台(类似selenium的driver后台)
wb.save(os.path.join(dir_path, 'name.xlsx'))
wb.close()
app.quit()
app.kill()

还可以进行整个区域性地赋值,如:wb.sheets['sheet1'].range('A2:F3').options(index=False).value = df


三、pandas相关

最后一个模块是pandas,这里不做叙述了。
单独说说 官网提示一次性读取多个sheet时,需要指定参数:sheet_name=None,返回一个包含多个df的列表对象。

# 读取包含多sheet工作簿内固定列
wb = pd.read_excel(self.file, sheet_name=None)
for sheet in wb.keys():
    wb[sheet] = wb[sheet]['col1', 'col2', 'col3']
    print(wb[sheet].shape)

有写入操作时需指定一个ExcelWriter:


推荐下面的写法,with型:


参考资源

1.OpenpyXL Doc
2.xlwings Doc
3.pd.ExcelWriter Doc
4.pd.to_excel Doc

原文地址:https://www.cnblogs.com/cheney97/p/14993970.html