当前位置 博文首页 > 详解python的xlwings库读写excel操作总结

    详解python的xlwings库读写excel操作总结

    作者:范仁义 时间:2021-07-20 18:58

    一、总结(点击显示或隐藏总结内容)

    一句话总结:
    xlwings 是 Python 中操作Excel的一个第三方库,支持.xls读写,.xlsx读写,操作非常简单,功能也很强大

    1、xlwings 中的逻辑:应用->工作簿->工作表->范围 对应的代码?

    应用:一个应用(一个xlwings程序):app = xw.App(visible=True, add_book=False)
    工作簿(book):excel文件(excel程序):wb = app.books.add()
    工作表(sheet):sheet:sht = wb.sheets['sheet1']
    范围:行列:sht.range('a6').expand('table').value = [['a','b'],['d','e']]

    import xlwings as xw
    
    # 写到Excel中去
    # add_book也就是是否增加excel 的book
    # visible=True 表示操作过程是否可显示
    app = xw.App(visible=True, add_book=False)
    # 工作簿
    wb = app.books.add()
    
    # 页sheet1
    sht = wb.sheets['sheet1']
    # 单个值插入
    # sht.range('A1').value = '产品名称'
    # sht.range('B1').value = '编号'
    # sht.range('C1').value = '价格'
    # sht.range('A2').value = '不告诉你'
    # sht.range('B2').value = 'n110110'
    # sht.range('C2').value = '688.26'
    # sht.range('A3').value = '不告诉你1'
    # sht.range('B3').value = 'n1101101'
    # sht.range('C3').value = '688.261'
    
    # 插入一行
    # sht.range('a1').value = [1,2,3,4]
    # 等同于
    # sht.range('a1:d4').value = [1,2,3,4]
    
    # 插入一列
    # sht.range('a2').options(transpose=True).value = [5,6,7,8]
    
    # 同时插入行列
    # sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
    
    # 在当前目录下生成文件
    wb.save('demo1.xlsx')
    wb.close()
    app.quit()
    
    # import os
    # path1=os.path.abspath('.')  # 表示当前所处的文件夹的绝对路径
    # print(path1)
    # path2=os.path.abspath('..') # 表示当前所处的文件夹上一级文件夹的绝对路径
    # print(path2)
    
    # 关于路径问题,切换到指定目录即可

    2、xlwings库向excel 插入值的方式?

    a、插入单个值:sht.range('A1').value = '产品名称'
    b、插入一行:sht.range('a1').value = [1,2,3,4] 或者 sht.range('a1:d4').value = [1,2,3,4]
    c、插入一列:sht.range('a2').options(transpose=True).value = [5,6,7,8]
    d、同时插入行列:sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
     

    3、xlwings库 读写excel基本操作步骤?

    就是按照xlwings库逻辑(应用->工作簿->工作表->范围)操作即可,打开的记得关就好了,该读就读,该写就写

    app = xw.App(visible=True, add_book=False)
    # 工作簿
    wb = app.books.add()
    # 页sheet1
    sht = wb.sheets['sheet1']
    # 同时插入行列
    sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
    # 在当前目录下生成文件
    wb.save('demo1.xlsx')
    wb.close()
    app.quit()
    

    4、xlwings库 读取excel中的数据的方式?

    print(sht.range('a1:c7').value),这样读行,读列,还是同时读行读列都可以
    

     

    # 读取行列:读取A1:C7(直接填入单元格范围就行了),得到一个二维列表
    print(sht.range('a1:c7').value)
    
    # 读取行:得一维列表 
    # print(sht.range('a1:c1').value)
    
    # 读取列:得一维列表
    # print(sht.range('a1:a7').value)
    
    
    import xlwings as xw
    
    app = xw.App(visible=True, add_book=False)
    # 显示警报()
    app.display_alerts = True
    # 屏幕更新(应用中)
    app.screen_updating = True
    # 打开文件
    
    wb = app.books.open('demo1.xlsx')
    sht = wb.sheets['sheet1']
    
    # 遍历读取单元格
    # column_name = ['A','B',"C"]
    # data_list = [] #将数据存到list中去
    # for i in range(3): # 遍历行
    #   row_list = []
    #   for j in range(3): #遍历列
    #     str1 = column_name[j]+str(i+1)
    #     a = sht.range(str1).value
    #     row_list.append(a)
    #     print(a)
    #     pass
    #   data_list.append(row_list)
    #   pass
    # print(data_list)
    
    # 读取行列:读取A1:C7(直接填入单元格范围就行了),得到一个二维列表
    print(sht.range('a1:c7').value)
    
    # 读取行:得一维列表 
    # print(sht.range('a1:c1').value)
    
    # 读取列:得一维列表
    # print(sht.range('a1:a7').value)
    wb.save()
    wb.close()
    app.quit()

    二、python的xlwings库读写excel操作总结

    1、写

    """
    
    xlwings介绍
    xlwings 是 Python 中操作Excel 的一个第三方库,
    支持.xls读写,.xlsx读写
    操作非常简单,功能也很强大
    
    1、安装库
    pip3 install xlwings
    
    2、引入库
    import xlwings as xw
    
    3、
    应用->工作簿->工作表->范围
    
    应用:一个应用(一个xlwings程序):
    app = xw.App(visible=True, add_book=False)
    
    工作簿(book):
    excel文件(excel程序):wb = app.books.add()
    
    工作表(sheet):
    sheet:sht = wb.sheets['sheet1']
    
    范围:行列:
    sht.range('a6').expand('table').value = [['a','b'],['d','e']]
    
    xlwings.App(visible=True,add_book=False)
    其中参数visible(表示处理过程是否可视,也就是处理Excel的过程会不会显示出来),add_book(是否打开新的Excel程序,也就是是不是打开一个新的excel窗口)
    
    """
    import xlwings as xw
    
    # 写到Excel中去
    # add_book也就是是否增加excel 的book
    # visible=True 表示操作过程是否可显示
    app = xw.App(visible=True, add_book=False)
    # 工作簿
    wb = app.books.add()
    
    # 页sheet1
    sht = wb.sheets['sheet1']
    # 单个值插入
    # sht.range('A1').value = '产品名称'
    # sht.range('B1').value = '编号'
    # sht.range('C1').value = '价格'
    # sht.range('A2').value = '不告诉你'
    # sht.range('B2').value = 'n110110'
    # sht.range('C2').value = '688.26'
    # sht.range('A3').value = '不告诉你1'
    # sht.range('B3').value = 'n1101101'
    # sht.range('C3').value = '688.261'
    
    # 插入一行
    # sht.range('a1').value = [1,2,3,4]
    # 等同于
    # sht.range('a1:d4').value = [1,2,3,4]
    
    # 插入一列
    # sht.range('a2').options(transpose=True).value = [5,6,7,8]
    
    # 同时插入行列
    # sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
    
    # 在当前目录下生成文件
    wb.save('demo1.xlsx')
    wb.close()
    app.quit()
    
    # import os
    # path1=os.path.abspath('.')  # 表示当前所处的文件夹的绝对路径
    # print(path1)
    # path2=os.path.abspath('..') # 表示当前所处的文件夹上一级文件夹的绝对路径
    # print(path2)
    
    # 关于路径问题,切换到指定目录即可
    
    

    2、读

    import xlwings as xw
    
    app = xw.App(visible=True, add_book=False)
    # 显示警报()
    app.display_alerts = True
    # 屏幕更新(应用中)
    app.screen_updating = True
    # 打开文件
    
    wb = app.books.open('demo1.xlsx')
    sht = wb.sheets['sheet1']
    
    # 遍历读取单元格
    # column_name = ['A','B',"C"]
    # data_list = [] #将数据存到list中去
    # for i in range(3): # 遍历行
    #   row_list = []
    #   for j in range(3): #遍历列
    #     str1 = column_name[j]+str(i+1)
    #     a = sht.range(str1).value
    #     row_list.append(a)
    #     print(a)
    #     pass
    #   data_list.append(row_list)
    #   pass
    # print(data_list)
    
    # 读取行列:读取A1:C7(直接填入单元格范围就行了),得到一个二维列表
    print(sht.range('a1:c7').value)
    
    # 读取行:得一维列表
    # print(sht.range('a1:c1').value)
    
    # 读取列:得一维列表
    # print(sht.range('a1:a7').value)
    
    wb.save()
    wb.close()
    app.quit()
    jsjbwy