xlwings的优点

xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改
可以和matplotlib以及pandas无缝连接
可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
开源免费,一直在更新

打开已保存的excel文件

import xlwings as xw
import time"""
visible
Ture:可见excel
False:不可见exceladd_book
True:打开excel并且新建工作簿
False:不新建工作簿
"""
app = xw.App(visible=False, add_book=False)# 警告提醒及屏幕更新关闭
app.display_alerts  = False
app.screen_updating = False# 文件位置:filepath,打开test文档
filepath = r'.\src\test.xlsx'
wb = app.books.open(filepath)
print('open file...')time.sleep(3)# 保存文档
wb.save()
# 退出工作簿(可省略)
wb.close()
# 退出Excel
app.quit()

新建工作簿并保存

import xlwings as wxapp = wx.App(visible=False, add_book=False)
app.display_alerts = False
app.screen_updating = Falsewb = app.books.add()# 若文件存在,则会覆盖原文件
wb.save(r'src\test2.xlsx')
wb.close()
app.quit()

修改单元格中数据并保存

import xlwings as xwapp = xw.App(visible=True, add_book=True)# wb = app.books.add()
wb = app.books.open(r'src\test3.xlsx')# print(wb.sheets[0].name) # 可以通过索引获取工作表
wb.sheets['Sheet1'].range('C5').value = '李四'ws1 = wb.sheets['Sheet1']
ws2 = wb.sheets['Sheet2']# api: Returns the native object (pywin32 or appscript obj) of the engine being used.
# 也即是说xlwings的API暗含了Excel的宏的功能,完全没有必要用xlwings调用宏了
# 通过api调用
print(ws1.api.Visible) # 通过api查看工作表的可见性# xlSheetHidden 0 隐藏工作表,用户可以通过菜单取消隐藏。
# xlSheetVeryHidden 2 隐藏对象,若要可见需要宏编辑器中此属性设置为True(用户无法使该对象可见)
# xlSheetVisibl -1 显示工作表。
ws2.api.Visible = 1
print(ws2.api.Visible) # 仍未-1,于是可知隐藏工作表wb.save()
wb.close()
app.quit()

数据的引用

import xlwingsxw = xlwings.App(visible=True, add_book=True)xw.display_alerts  = False
xw.screen_updating = False# 引用工作簿,注意工作簿应该首先被打开
wb = xw.books.open(r'src\data_for_read.xlsx')# 引用活动工作簿
# wb = xw.books.active# 引用工作簿中的sheet
sht = wb.sheets['Sheet1']
# 或则
# sht = xw.books[r'src\data_for_read.xlsx'].sheets['Sheet1']# 引用活动sheet
# sht = wb.sheets.active# 1)range形式的引用
# 引用A1单元格
rng = sht.range('A1')
print(rng.value)# 也可以使用R1C1形式的range引用
# A1单元格的引用
rng = sht.range(1,1)
print(rng.value)
# A1:C3单元格的引用
rng = sht.range((1,1),(3,3))
print(rng.value)# 2)直接引用
rng = sht['A1']
print(rng.value)# A1:B5单元格
rng = sht['A1:B5']
print(rng.value)# 在第i+1行,第j+1列的单元格
# B1单元格
rng=sht[0,1]
print(rng.value)# A1:J10
rng=sht[:10,:10]
print(rng.value)# 获取工作表总行列数
info = sht.used_range
nrows = info.last_cell.row
ncols = info.last_cell.columnwb.save()
wb.close()
xw.quit()

数据的存储

import xlwings as xwapp = xw.App(visible=True, add_book=True)
app.display_alerts = False
app.screen_updating = Falsewb = app.books.open(r'src/data_for_write.xlsx')sht = wb.sheets["Sheet1"]# 注意".value“
sht.range('A1').value = 1
# 储存列表
# 将列表[1,2,3]储存在A1:C1中
sht.range('A1').value = [1,2,3]
# 将列表[1,2,3]储存在A1:A3中
sht.range('A1').options(transpose=True).value = [1,2,3]
# 将2x2表格,即二维数组,储存在A1:B2中,如第一行1,2,第二行3,4
# expand:
# Expands the range according to the mode provided.
# Ignores empty top-left cells (unlike Range.end()).
# One of 'table' (=down and right), 'down', 'right'.
sht.range('A1').options(expand='table').value = [[1,2],[3,4]]
# 将二维数组存储到C5:D6中
sht[4:6, 2:4].value = [[1,2], [3,4]]wb.save()
wb.close()
app.quit()

常用的API

import xlwings as xwapp = xw.App(visible=True, add_book=True)
app.display_alerts = False
app.screen_updating = Falsewb = app.books.open(r'src/data_for_read.xlsx')# 1.工作簿
# 1.1 获取工作表个数
num = len(wb.sheets)
print(num)# 2.工作表
# 2.1 工作表的名字
for i in range(num):sht_name = wb.sheets[i].nameprint(sht_name)# 2.2 激活sheet为活动工作表
# sht.activate()# 2.3 清除sheet的内容和格式
# sht.clear()# 2.4 清除sheet的内容
# sht.contents()# 2.5 删除sheet
# sht.delete# 2.6 sheet中表格的自适应宽度
# To autofit rows, use one of the following: rows or r
# To autofit columns, use one of the following: columns or c
# To autofit rows and columns, provide no arguments
wb.sheets['Sheet1'].autofit('c') # 列自适应宽度
wb.sheets['Sheet1'].autofit('r') # 行自适应宽度
wb.sheets['Sheet1'].autofit() # 行列自适应宽度# 3.单元格
# 引用当前活动工作表的单元格
rng=xw.Range('A1')
# 3.1 加入超链接
rng.add_hyperlink(r'www.baidu.com','百度','提示:点击即链接到百度')
# 3.2取得当前range的地址
rng.address
rng.get_address()
# 3.3 清除range的内容
rng.clear_contents()
# 3.4 清除格式和内容
rng.clear()
# 3.5 取得range的背景色,以元组形式返回RGB值
rng.color
# 3.6 设置range的颜色
rng.color=(255,255,255)
# 3.7 清除range的背景色
rng.color=None
# 3.8 获得range的第一列列标
rng.column
# 3.9 返回range中单元格的数据
rng.count
# 3.10 返回current_region
rng.current_region
# 3.11 返回ctrl + 方向
rng.end('down')
# 3.12 获取公式或者输入公式
rng.formula='=SUM(B1:B5)'
# 3.13 数组公式
rng.formula_array
# 3.14 获得单元格的绝对地址
rng.get_address(row_absolute=True, column_absolute=True,include_sheetname=False, external=False)
# 获得列宽
rng.column_width
# 3.15 返回range的总宽度
rng.width
# 3.16 获得range的超链接
rng.hyperlink
# 3.17 获得range中右下角最后一个单元格
rng.last_cell
# 3.18 range平移
rng.offset(row_offset=0,column_offset=0)
#r 3.19 ange进行resize改变range的大小
rng.resize(row_size=None,column_size=None)
# 3.20 range的第一行行标
rng.row
# 3.21 行的高度,所有行一样高返回行高,不一样返回None
rng.row_height
# 3.22 返回range的总高度
rng.height
# 3.23 返回range的行数和列数
rng.shape
# 3.24 返回range所在的sheet
rng.sheet
# 3.25 返回range的所有行
rng.rows
# 3.26 range的第一行
rng.rows[0]
# 3.27 range的总行数
rng.rows.count
# 3.28 返回range的所有列
rng.columns
# 3.29 返回range的第一列
rng.columns[0]
# 3.30 返回range的列数
rng.columns.count
# 3.31 所有range的大小自适应
rng.autofit()
# 3.32 所有列宽度自适应
rng.columns.autofit()
# 3.33 所有行宽度自适应
rng.rows.autofit()wb.save()
wb.close()
app.quit()

复制工作表

import xlwings as xwapp = xw.App(visible=False, add_book=False)
app.display_alerts = False
app.screen_updating = False
wb = app.books.open(r'src/copy.xlsx')start_sheet = wb.sheets[0]
sht_sample = wb.sheets['src'] # 要复制的sheet# 重点是copy
# 将src工作表复制到工作簿第一张
sht_sample.api.Copy(Before = start_sheet.api)
# 重新获取工作簿第一张工作表,即是刚才复制好的工作表
sht = wb.sheets[0]
new_sheet_name = 'new sheet'
sht.api.Name = new_sheet_namewb.save()
wb.close()
app.quit()

xlwings模块学习相关推荐

  1. xlwings模块(数据保存为xlsx文件)

    目录 安装 使用 创建App 工作簿Book与Books 工作表Sheet 引用区域与单元格操作 xlwings是一个可以实现从Excel调用Python,也可在python中调用Excel的库.开源 ...

  2. excel操作 - xlwings模块

    文章目录 excel操作 - xlwings模块 xlwings模块介绍 读写的基本操作 写入 读取 xlwings库总结 APP 操作方法 Book 操作方法 Sheet 操作方法 range 操作 ...

  3. python 的日志logging模块学习

    2019独角兽企业重金招聘Python工程师标准>>> python 的日志logging模块学习 分类: python 2011-08-02 23:51 8338人阅读 评论(0) ...

  4. python中configparser_python中confIgparser模块学习

    python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...

  5. python textwrap_python2.7.3编译python模块学习- textwrap 文本包装和填充

    python模块学习- textwrap 文本包装和填充 代码实例: sample_text = ''' The textwrap module can beused to format text f ...

  6. android fm模块学习,AndroidFM模块学习之5关闭FM流程

    AndroidFM模块学习之五关闭FM流程 前一阵子简单描述了一些关于FM开启.录音和搜索的流程,浅析了一下各个类的源码,接下来就是关闭FM了,FM模块的学习就告一段落了,希望这阵子的整理能对大家在F ...

  7. python中的glob 模块学习文件路径查找

    glob glob.glob(pathname), 返回所有匹配的文件路径列表.它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径. import glob ...

  8. pythontemp_python 临时文件夹 的 tempfile模块学习

    python的临时文件夹的tempfile模块学习 应用程序经常要保存一些临时的信息,这些信息不是特别重要,没有必要写在配置文件 里,但又不能没有,这时候就可以把这些信息写到临时文件里.其实很 多程序 ...

  9. python3.8安装xlwings出错_Python xlwings模块简单使用

    Python xlwings模块简单使用xlwings 安装 xlwings excel-book-打开-新建 xlwings sheet-api xlwings 操作数据 xlwings 读取数据 ...

最新文章

  1. C#学习笔记(四):数组
  2. Technical Artist的不归路 —— Kajiya-Kay Shading
  3. 指定类型的成员XX”不支持实体LINQ。只有初始化,成员单位,和实体导航性能的支持。...
  4. 2015-12-15 关于就近日期
  5. calcBackProject函数(搜索小物体的位置)
  6. IEEE 754标准--维基百科
  7. LeetCode 996. 正方形数组的数目(回溯+剪枝)
  8. ios(safar/微信)返回不执行js
  9. ISA Server 2004软件防火墙相关配置
  10. 快速排序QuickSort
  11. Win10打开或关闭任务栏系统图标
  12. 刷脸支付帮助店铺构建细致准确的用户画像
  13. 2022年的1024
  14. win10常用快捷键和常用DOS命令
  15. java中继承内部类的方法_Java自学-接口与继承 内部类
  16. 电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)
  17. 订阅技术类型的公众号 究竟是为了什么?
  18. InnoDB关键特性之插入缓冲
  19. [Web前端] 子元素设置高度为100%, 却没有与父元素对齐高度.
  20. WPF实现仿Glitch闪烁特效

热门文章

  1. nacos2.2.1集成达梦数据库
  2. Cardboard虚拟现实开发技巧(二)之保持手机常亮
  3. 基于asp.net连队物资管理系统
  4. 一个CAN总线挂了两个设备,波特率分别是500K,和250K,怎么用PCAN来调试呢
  5. 电子版微积分,知识共享不走样,原汁原味学微积
  6. matplotlib 设置分辨率
  7. su highgo可能引起的psql报错
  8. C语言--模拟实现strncpy函数
  9. 项目在IDEA里导不出war包
  10. 大数据:“男人不如狗”,让我陷入了深深的反思