插上翅膀,让Excel飞起来——xlwings(二)

在上一篇插上翅膀,让Excel飞起来——xlwings(一)中提到利用xlwings模块,用python操作Excel有如下的优点:

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

本文紧接着上文介绍了xlwings模块一些常用的api


xlwings基本对象

常用函数和方法

  1. Book 工作簿常用的api
    wb=xw.books[‘工作簿名称']
    • wb.activate()激活为当前工作簿
    • wb.fullname 返回工作簿的绝对路径
    • wb.name 返回工作簿的名称
    • wb.save(path=None) 保存工作簿,默认路径为工作簿原路径,若未保存则为脚本所在的路径
      -wb. close() 关闭工作簿
      代码例子:
      # 引用Excel程序中,当前的工作簿
      wb=xw.books.acitve
      # 返回工作簿的绝对路径
      x=wb.fullname
      # 返回工作簿的名称
      x=wb.name
      # 保存工作簿,默认路径为工作簿原路径,若未保存则为脚本所在的路径
      x=wb.save(path=None)
      # 关闭工作簿
      x=wb.close()
  2. sheet 常用的api
     # 引用某指定sheet
     sht=xw.books['工作簿名称'].sheets['sheet的名称']
     # 激活sheet为活动工作表
     sht.activate()
     # 清除sheet的内容和格式
     sht.clear()
     # 清除sheet的内容
     sht.contents()
     # 获取sheet的名称
     sht.name
     # 删除sheet
     sht.delete
  3. range常用的api
     # 引用当前活动工作表的单元格
     rng=xw.Range('A1')
     # 加入超链接
     # rng.add_hyperlink(r'www.baidu.com','百度',‘提示:点击即链接到百度')
     # 取得当前range的地址
     rng.address
     rng.get_address()
     # 清除range的内容
     rng.clear_contents()
     # 清除格式和内容
     rng.clear()
     # 取得range的背景色,以元组形式返回RGB值
     rng.color
     # 设置range的颜色
     rng.color=(255,255,255)
     # 清除range的背景色
     rng.color=None
     # 获得range的第一列列标
     rng.column
     # 返回range中单元格的数据
     rng.count
     # 返回current_region
     rng.current_region
     # 返回ctrl + 方向
     rng.end('down')
     # 获取公式或者输入公式
     rng.formula='=SUM(B1:B5)'
     # 数组公式
     rng.formula_array
     # 获得单元格的绝对地址
     rng.get_address(row_absolute=True, column_absolute=True,include_sheetname=False, external=False)
     # 获得列宽
     rng.column_width
     # 返回range的总宽度
     rng.width
     # 获得range的超链接
     rng.hyperlink
     # 获得range中右下角最后一个单元格
     rng.last_cell
     # range平移
     rng.offset(row_offset=0,column_offset=0)
     #range进行resize改变range的大小
     rng.resize(row_size=None,column_size=None)
     # range的第一行行标
     rng.row
     # 行的高度,所有行一样高返回行高,不一样返回None
     rng.row_height
     # 返回range的总高度
     rng.height
     # 返回range的行数和列数
     rng.shape
     # 返回range所在的sheet 
     rng.sheet
     #返回range的所有行
     rng.rows
     # range的第一行
     rng.rows[0]
     # range的总行数
     rng.rows.count
     # 返回range的所有列
     rng.columns
     # 返回range的第一列
     rng.columns[0]
     # 返回range的列数
     rng.columns.count
     # 所有range的大小自适应
     rng.autofit()
     # 所有列宽度自适应
     rng.columns.autofit()
     # 所有行宽度自适应
     rng.rows.autofit()
  4. books 工作簿集合的api
     # 新建工作簿
     xw.books.add()
     # 引用当前活动工作簿
     xw.books.active
  5. sheets 工作表的集合
     # 新建工作表
     xw.sheets.add(name=None,before=None,after=None)
     # 引用当前活动sheet
     xw.sheets.active

实例

大Z老师,教了小z同学怎么用python操作Excel之后,利用第一篇和第二篇的知识,编写了一个python小脚本,给小Z同学演示了一下怎么用python调整单元格的行宽、列宽和背景色,做一些Interesting的事。


大Z老师的作品.png

小Z同学在看了这么cliche但是好玩的东西之后,自己果断地修改了代码,改变了单元格的颜色,并在sheet里面进行了题字,然后,便有新的作品:


小z的作品.png

下一课有机会教小z同学,利用python自带的time模块,让Excel中静态的画和字动起来,成为像gif一样的图片。

参考资料:
xlwings官方文档



作者:LuckyFrog
链接:http://www.jianshu.com/p/b534e0d465f7
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2017-11-21 22:26  catgatp  阅读(6321)  评论(0编辑  收藏  举报