• 【基础扎实】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

  • 相关阅读:
    [atAGC049E]Increment Decrement
    [atARC099F]Eating Symbols Hard
    [atARC099E]Independence
    [Codeforces] Codeforces Round #456
    Treap
    Splay树
    [Offer收割]编程练习赛42
    [Codeforces]Good Bye 2017
    Codeforces Round #455
    Educational Codeforces Round 35
  • 原文地址:https://www.cnblogs.com/cheney97/p/14993970.html
Copyright © 2020-2023  润新知