python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python xlwings模块

关于python xlwings模块用法详解

作者:士别三日wyx

xlwings是一个用于在Excel和Python之间进行交互的库,它允许您使用Python操作Excel文件,包括读取和写入数据,运行宏,设置格式等等,我们可以使用xlwings来处理Excel文件中的数据,执行各种操作,所以本文小编就给大家python xlwings模块用法

xlwings 是用来「处理Excel」的Python第三方库,开源免费,一直在更新。

使用前需要「下载」、安装 xlwings 模块

【File】-【Settings】-【Progect:xxx】-【Python Interpreter】

然后「导入模块」,as是别名,方便后续调用

import xlwings as xw

在 xlwings 中

1、快速入门

import xlwings as xw
# 1、打开Excel程序,处理过程可观
with xw.App(visible=True) as app:
    # 2、选择使用的工作簿
    book = app.books[0]
    # 3、选择使用的工作表
    sheet = book.sheets[0]
    # 4、选择单元格范围,设置背景颜色
    sheet.range('A1').color = '#ff0000'
    # 向单元格写入数据
    sheet.range('A2').value = 'hello Excel'
    # 5、保存工作簿
    book.save('myExcel.xlsx')

预期:文件保存到当前目录,打开后看到我们写入的内容。

2、打开Excel

使用 App() 打开Excel程序,一个App对应一个Excel实例。

为了防止僵尸进程,建议这样「启动」Excel( with 搭建上下文,会「自动释放」资源,无需手动close)

import xlwings as xw
with xw.App(visible=True) as app:
    print(app)

输出:

<App [excel] 5276>

提示:

实例

import xlwings as xw
with xw.App(visible=True) as app:
    app.activate(True)

预期:Excel显示在桌面最前方(一闪而过)。

3、创建工作簿

在Excel中,「新建」一个工作簿,并返回工作簿对象Book,有三种创建方式:

实例

import xlwings as xw
with xw.App(visible=True) as app:
    print('自带一个工作簿:', app.books[0])
    book2 = xw.Book()
    print(book2)
    book3 = xw.books.add()
    print(book3)
    book4 = app.books.add()
    print(book4)
    print(app.books)

输出:

自带一个工作簿: <Book [工作簿1]>
<Book [工作簿2]>
<Book [工作簿3]>
<Book [工作簿4]>
Books([<Book [工作簿1]>, <Book [工作簿2]>, <Book [工作簿3]>, ...])

3.1、使用工作簿

1)「使用」指定的工作簿,根据工作簿的名字/索引/序号,并返回工作簿对象,有五种方式。
注意:() 根据 序号 选择,从1开始;[]根据 索引 选择,从0开始。

实例

import xlwings as xw
with xw.App(visible=True) as app:
    print(app.books)
    print(app.books(1))
    print(app.books[0])
    print(xw.books[0])
    print(xw.books(1))
    print(xw.Book('工作簿1'))

输出:

Books([<Book [工作簿1]>])
<Book [工作簿1]>
<Book [工作簿1]>
<Book [工作簿1]>
<Book [工作簿1]>
<Book [工作簿1]>

2)使用指定的工作簿,根据「文件路径」(用r字符串包裹路径),有三种方式

实例

import xlwings as xw
with xw.App(visible=True) as app:
    print(xw.Book(r'E:\test.xlsx'))
    print(xw.books.open(r'E:\test.xlsx'))
    print(app.books.open(r'E:\test.xlsx'))
    print(app.books)

输出:

<Book [test.xlsx]>
<Book [test.xlsx]>
<Book [test.xlsx]>
Books([<Book [工作簿1]>, <Book [test.xlsx]>])

3.2、操作工作簿

实例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    print(book.name)
    print(book.sheets)
    print(book.app, app)
    print(book.selection)

输出:

工作簿1
Sheets([<Sheet [工作簿1]Sheet1>])
<App [excel] 18392> <App [excel] 18392>
<Range [工作簿1]Sheet1!$A$1>

语法

book.save( path, password )

参数

实例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    book.save(r'E:/test1.xlsx', 123456)

预期:文件保存到E盘,打开需要「输入密码」。

注意:Excel必须有「内容」,才能导出PDF,否则会报错

语法

book.to_pdf( path, include, exclude, show )

参数

实例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    book.sheets[0]['A1'].value = 'text'
    book.to_pdf(show=True)

预期:PDF文件保存到当前目录下,并「自动打开」。

4、创建工作表

使用工作簿对象 Book ,「创建」工作表,返回工作表对象 Sheet ,一个 Sheet 对应一个工作表,有两种创建方式:

创建工作表时,可以「设置表名」。参数2中, after 表示插入到某个表后面, before 表示插入到某个表前面。

实例

import xlwings as xw
with xw.App(visible=True) as app:
    app.books[0].sheets.add('name1')
    xw.books[0].sheets.add()
    print('所有工作表:', app.books[0].sheets)

输出:

所有工作表: Sheets([<Sheet [工作簿1]Sheet3>, <Sheet [工作簿1]name1>, <Sheet [工作簿1]Sheet1>])

4.1、使用工作表

通过工作簿对象 Book ,「使用」指定的工作表,根据工作表的名字/索引/序号,并返回工作表对象 Sheet ,有六种方式:

注意:() 根据 序号 选择,从1开始;[]根据 索引 选择,从0开始。

实例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    print(book.sheets[0])
    print(book.sheets(1))
    print(book.sheets['Sheet1'])
    wb = xw.books[0]
    print(wb.sheets[0])
    print(wb.sheets(1))
    print(wb.sheets['Sheet1'])
    print('工作表列表:', book.sheets)

输出:

<Sheet [工作簿1]Sheet1>
<Sheet [工作簿1]Sheet1>
<Sheet [工作簿1]Sheet1>
<Sheet [工作簿1]Sheet1>
<Sheet [工作簿1]Sheet1>
<Sheet [工作簿1]Sheet1>
工作表列表: Sheets([<Sheet [工作簿1]Sheet1>])

4.2、操作工作表

1)工作表名

2)行高列宽

3)导出工作表(不指定路径,默认保存到当前目录)

4)复制工作表

4.3、删除工作表

5、读写单元格

单元格不需要创建,选中单元格「范围」,然后读写即可,一个 Range 对应一个单元格。

5.1、选择单元格

按照范围、位置,选择单元格,并返回单元格对象,有多种方式。

1)按照A1表示法(例:选中A1到B3范围的单元格)

2)按照坐标位置,坐标从左上角起始

3)切片方式选择范围

4)按照单元格名字

实例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    sheet = book.sheets[0]
    range1 = sheet.range('A1')
    print(range1)
    range2 = sheet.range('A1:B2')
    print(range2)
    range3 = sheet.range(1, 1)
    print(range3)
    range4 = sheet.range((1, 1), (3, 4))
    print(range4)
    print(sheet['A1'])
    print(sheet['A1:B2'])
    print(sheet[0, 0])
    print(sheet[0:1, 0:4])

输出:

<Range [工作簿1]Sheet1!$A$1>
<Range [工作簿1]Sheet1!$A$1:$B$2>
<Range [工作簿1]Sheet1!$A$1>
<Range [工作簿1]Sheet1!$A$1:$D$3>
<Range [工作簿1]Sheet1!$A$1>
<Range [工作簿1]Sheet1!$A$1:$B$2>
<Range [工作簿1]Sheet1!$A$1>
<Range [工作簿1]Sheet1!$A$1:$D$1>

5.2、写入数据到单元格

向指定单元格中写入数据,数据可以是单个值、一维列表、二维列表

写入效果参见下图

提示:已经有数据的单元格,再次写入,会覆盖原来的数据,常用来修改单元格数据。

5.3、读取单元格的数据

按照A1表示法,读取指定范围内单元格的数据,读出的数据可以是单个数据列表二维列表形式。

我们将上一步写入的数据读出来,输出结果如下:

hello Excel
[1.0, 2.0, 3.0]
[[11.0, 22.0], [33.0, 44.0]]

5.4、设置单元格样式

1)背景颜色

2)行高列宽

3)合并单元格

4)函数公式

5)单元格名字

5)单元格名字

5.5、删除单元格

删除指定范围的单元格、数据、样式

以上就是关于python xlwings模块用法详解的详细内容,更多关于python xlwings模块的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文