xlwings excel(三)
阅读原文时间:2023年07月10日阅读:1
  1. App相当于Excel程序,Book相当于工作簿。N个Excel程序则由apps表示,N个工作簿由books表示。

  2. 对工作簿的操作

    #导入xlwings模块
    import xlwings as xw
    #新建工作簿,这里默认为新建了一个App,即打开Excel程序,并新建一个工作簿
    xw.Book()
    #引用工作簿
    xw.Book('工作簿3')

    引用工作簿也可以用books

    xw.books['工作簿3’]
    #打开已有工作簿
    xw.Book(r'e:\myworkbook.xlsx')

  3. 对sheet以及Range的操作

    import xlwings as xw
    wb=xw.Book()

    引用名字为"sheet2"的sheet

    sht=wb.sheets['sheet2']

    引用"sheet2"中的B1单元格

    rng=sht.range('B1')

    将B1单元格的值改为666

    rng.value=666

数据结构

  1. 一维数据
    python的列表,可以和Excel中的行列进行数据交换,python中的一维列表,在Excel中默认为一行数据

    import xlwings as xw
    sht=xw.sheets.active

    将1,2,3分别写入了A1,B1,C1单元格中

    sht.range('A1').value=[1,2,3]

    将A1,B1,C1单元格的值存入list1列表中

    list1=sht.range('A1:C1').value

    将1,2,3分别写入了A1,A2,A3单元格中

    sht.range('A1').options(transpose=True).value=[1,2,3]

    将A1,A2,A3单元格中值存入list1列表中

    list1=sht.range('A1:A3').value

  2. 二维数据
    python的二维列表,可以转换为Excel中的行列。二维列表,即列表中的元素还是列表。在Excel中,二维列表中的列表元素,代表Excel表格中的一列。例如:

    将a1,a2,a3输入第一列,b1,b2,b3输入第二列

    list1=[[‘a1’,'a2','a3'],['b1','b2','b3']]
    sht.range('A1').value=list1

 

运行结果

# 将A1:B3的值赋给二维列表list1
list1=sht.range('A1:B3‘).value
  1. Excel中区域的选取表格

    选取第一列

    rng=sht. range('A1').expand('down')
    rng.value=['a1','a2','a3']

 

第一列

# 选取第一行
rng=sht.range('A1').expand('right')
rng=['a1','b1']

 

第一行

# 选取表格
rng.sht.range('A1').expand('table')
rng.value=[[‘a1’,'a2','a3'],['b1','b2','b3']]

 

结束

  • 本文首先简单介绍了,通过Python运用xlwings模块,对Excel工作簿、工作表和单元格的操作。
  • 再介绍了xlwings,如何对Excel表格的行和列写入和引用数据
  • 通过二维或者一维列表对Excel工作表的数据进行写入或者引用,既简化了代码,也提高了程序的效率。因为python读写Excel表格的速度,原小于python程序自身的运行速度。