江门市智企互联网站建设,创建一个自己的公司的英文,建一个全部由自己控制的网站需要多少钱,长春网站制作培训「作者主页」#xff1a;士别三日wyx 「作者简介」#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」#xff1a;小白零基础《Python入门到精通》 xlwings模块详解 1、快速入门1、打开Excel2、创建工作簿2.1、使用工作簿2.2、操作… 「作者主页」士别三日wyx 「作者简介」CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」小白零基础《Python入门到精通》 xlwings模块详解 1、快速入门1、打开Excel2、创建工作簿2.1、使用工作簿2.2、操作工作簿 3、创建工作表3.1、使用工作表3.2、操作工作表3.3、删除工作表 4、读写单元格4.1、选择单元格4.2、写入数据到单元格4.3、读取单元格的数据4.4、设置单元格样式4.4、删除单元格 xlwings 是用来「处理Excel」的Python第三方库开源免费一直在更新。
使用前需要「下载」、安装 xlwings 模块
【File】-【Settings】-【Progectxxx】-【Python Interpreter】 然后「导入模块」as是别名方便后续调用
import xlwings as xw在 xlwings 中
App表示Excel程序Book表示工作簿Sheet表示工作表Range表示单元格 1、快速入门
import xlwings as xw# 1、打开Excel程序处理过程可观
with xw.App(visibleTrue) 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)预期文件保存到当前目录打开后看到我们写入的内容。 1、打开Excel
使用 App() 打开Excel程序一个App对应一个Excel实例。
为了防止僵尸进程建议这样「启动」Excel with 搭建上下文会「自动释放」资源无需手动close
import xlwings as xwwith xw.App(visibleTrue) as app:print(app)输出
App [excel] 5276提示
桌面下方的任务栏会有Excel的程序一闪而过这是因为 with 会自动关闭Excel如果 visibleFalse则任务栏看不到变化程序不可见如果直接用 xw.App() 的方式打开Excel则会在桌面打开Excel并且不会关闭。app.activate()活动Excel将Excel程序放到桌面最前方。focusTrue表示将鼠标焦点移动到Excel。
实例
import xlwings as xwwith xw.App(visibleTrue) as app:app.activate(True)预期Excel显示在桌面最前方一闪而过。 2、创建工作簿
在Excel中「新建」一个工作簿并返回工作簿对象Book有三种创建方式
xw.Book()xw.books.add()app.books.add()
实例
import xlwings as xwwith xw.App(visibleTrue) 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], ...])2.1、使用工作簿
1「使用」指定的工作簿根据工作簿的名字/索引/序号并返回工作簿对象有五种方式。 注意() 根据 序号 选择从1开始[]根据 索引 选择从0开始。
app.books (序号)app.books [索引]xw.books [索引]xw.books (序号)xw.Book (名字)
实例
import xlwings as xwwith xw.App(visibleTrue) 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字符串包裹路径有三种方式
xw.Book( 路径 )xw.books.open( 路径 )app.books.open( 路径 )
实例
import xlwings as xwwith xw.App(visibleTrue) as app:print(xw.Book(rE:\test.xlsx))print(xw.books.open(rE:\test.xlsx))print(app.books.open(rE:\test.xlsx))print(app.books)输出
Book [test.xlsx]
Book [test.xlsx]
Book [test.xlsx]
Books([Book [工作簿1], Book [test.xlsx]])2.2、操作工作簿
book.name返回工作簿的名字book.sheets返回工作簿的所有sheet页列表book.app返回工作簿所在的App对象Excel程序
实例
import xlwings as xwwith xw.App(visibleTrue) 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$1book.save()保存工作簿如果不指定路径则保存到当前路径。
语法
book.save( path, password )参数 path 可选文件保存路径 password 可选文件打开密码
实例
import xlwings as xwwith xw.App(visibleTrue) as app:book app.books[0]book.save(rE:/test1.xlsx, 123456)预期文件保存到E盘打开需要「输入密码」。 book.to_pdf()导出PDF如果不指定路径则保存到当前路径。
注意Excel必须有「内容」才能导出PDF否则会报错
语法
book.to_pdf( path, include, exclude, show )参数 path 可选PDF文件保存路径默认当前目录 include 可选包含哪些工作表单个工作表名 或 多个工作表名的列表 exclude 可选不包含哪些工作表单个工作表名 或 多个工作表名的列表 show 可选创建后使用默认应用打开PDF默认值False
实例
import xlwings as xwwith xw.App(visibleTrue) as app:book app.books[0]book.sheets[0][A1].value textbook.to_pdf(showTrue)预期PDF文件保存到当前目录下并「自动打开」。 3、创建工作表
使用工作簿对象 Book 「创建」工作表返回工作表对象 Sheet 一个 Sheet 对应一个工作表有两种创建方式
app.books[0].sheets.add()xw.books[0].sheets.add()
创建工作表时可以「设置表名」。参数2中 after 表示插入到某个表后面 before 表示插入到某个表前面。
app.books[0].sheets.add(name1)xw.books[0].sheets.add(name2)
实例
import xlwings as xwwith xw.App(visibleTrue) 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])3.1、使用工作表
通过工作簿对象 Book 「使用」指定的工作表根据工作表的名字/索引/序号并返回工作表对象 Sheet 有六种方式
app.books[0].sheets[0]app.books[0].sheets(1)app.books[0].sheets[Sheet1]xw.books[0].sheets[0]xw.books[0].sheets(1)xw.books[0].sheets[Sheet1]
注意() 根据 序号 选择从1开始[]根据 索引 选择从0开始。
实例
import xlwings as xwwith xw.App(visibleTrue) 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])3.2、操作工作表
1工作表名
app.books[0].sheets[0].name sheetName设置工作表名app.books[0].sheets[0].name获取工作表名app.books[0].sheets[0].book获取工作表所属的工作簿app.books[0].sheets[0].index获取工作表的索引从1开始
2行高列宽
app.books[0].sheets[0].autofit()自适应行高列宽app.books[0].sheets[0].autofit(axisrows)自适应行高app.books[0].sheets[0].autofit(axiscolumns)自适应列宽
3导出工作表不指定路径默认保存到当前目录
app.books[0].sheets[0].to_html()导出 HTMLapp.books[0].sheets[0].to_pdf()导出 PDF内容不能为空
4复制工作表
app.books[0].sheets(sheetName).copy()复制工作表为副本name可选str副本的名字before可选sheet对象复制到哪个工作表之前after可选sheet对象复制到哪个工作表之后 3.3、删除工作表
app.books[0].sheets[0].clear_contents()删除文本但保留样式app.books[0].sheets[0].clear_formats()删除样式但保留文本app.books[0].sheets[0].clear()删除文本和样式app.books[0].sheets[0].delete()删除工作表 4、读写单元格
单元格不需要创建选中单元格「范围」然后读写即可一个 Range 对应一个单元格。
4.1、选择单元格
按照范围、位置选择单元格并返回单元格对象有多种方式。
1按照A1表示法例选中A1到B3范围的单元格
sheet.range(A1)sheet.range(A1:B2)
2按照坐标位置坐标从左上角起始
sheet.range(1, 1)sheet.range((1, 1), (3, 4))
3切片方式选择范围
sheet[A1]sheet[A1:B2]sheet[0, 0]sheet[0:1, 0:4]
4按照单元格名字
sheet.range(a1_name)
实例
import xlwings as xwwith xw.App(visibleTrue) 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$14.2、写入数据到单元格
向指定单元格中写入数据数据可以是单个值、一维列表、二维列表
sheet.range(A1).value hello Excelsheet.range(A2).value [1, 2, 3]sheet.range(A3).value [[11, 22], [33, 44]]
写入效果参见下图 提示已经有数据的单元格再次写入会覆盖原来的数据常用来修改单元格数据。 4.3、读取单元格的数据
按照A1表示法读取指定范围内单元格的数据读出的数据可以是单个数据、列表、二维列表形式。
sheet.range(A1).valuesheet.range(A2:C2).valuesheet.range(A3:B4).value
我们将上一步写入的数据读出来输出结果如下
hello Excel
[1.0, 2.0, 3.0]
[[11.0, 22.0], [33.0, 44.0]]4.4、设置单元格样式
1背景颜色
sheet.range(A1:A2).color #FF0000按照颜色代码设置颜色sheet.range(B1).color (255, 255, 0)按照颜色坐标设置颜色sheet.range(A2).color None去除背景颜色sheet.range(A2).color is None判断背景颜色是否为空sheet.range(B1).color获取背景颜色
2行高列宽
sheet.range(A1).row_height获取行高sheet.range(A1).column_width获取列宽sheet.range(A1).row_height 20设置行高sheet.range(A1).column_width 20设置列宽sheet.range(A1).rows.autofit()自适应行高sheet.range(A1).columns.autofit()自适应列宽sheet.range(A1).autofit()自适应行高列宽
3合并单元格
sheet.range(A1:C1).merge()合并单元格sheet.range(B1:C1).unmerge()取消合并sheet.range(A1).merge_area返回指定单元格的合并范围如果没有合并就返回单元格本身sheet.range(A1).merge_cells判断是否包含合并单元格True包含False不包含
4函数公式
sheet.range(D1).formula SUM(A1:C1)设置函数公式sheet.range(D1).formula获取函数公式
5单元格名字
sheet.range(A1).name a1_name设置单元格名字sheet.range(A1).name获取单元格名字
6复制粘贴
sheet.range(A1).copy()将单元格的内容复制到剪贴板sheet.range(A2).paste()将剪贴板的内容复制到单元格 4.4、删除单元格
删除指定范围的单元格、数据、样式
sheet.range(A1).clear_contents()删除数据但保留样式sheet.range(A2).clear_formats()删除样式但保留数据sheet.range(A3).clear()删除数据和样式sheet.range(A1).delete()删除单元格