插上翅膀,讓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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM