国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
xlwings使用教程

xlwings介紹

python操作Excel的模塊,網(wǎng)上提到的模塊大致有:xlwings、xlrd、xlwt、openpyxl、pyxll等,他們提供的功能歸納起來有兩種:一、用python讀寫Excel文件,實際上就是讀寫有格式的文本文件,操作excel文件和操作text、csv文件沒有區(qū)別,Excel文件只是用來儲存數(shù)據(jù)。二、除了操作數(shù)據(jù),還可以調(diào)整Excel文件的表格寬度、字體顏色等。另外需要提到的是用COM調(diào)用Excel的API操作Excel文檔也是可行的,相當麻煩基本和VBA沒有區(qū)別

xlwings中文文檔

https://www.kancloud.cn/gnefnuy/xlwings-docs/1127474

xlwings的特色

  • xlwings能夠非常方便的讀寫Excel文件中的數(shù)據(jù),并且能夠進行單元格格式的修改
  • 可以和matplotlib以及pandas無縫連接
  • 可以調(diào)用Excel文件中VBA寫好的程序,也可以讓VBA調(diào)用用Python寫的程序。
  • 開源免費,一直在更新

基本操作

一、引入庫

import xlwings as xw

二、打開 excel

# 打開Excel程序,默認設置:程序可見,只打開不新建工作薄,屏幕更新關閉
app=xw.App(visible=True,add_book=False)
app.display_alerts=False
app.screen_updating=False
# 其他操作:
# app.screen_updating = False  
# :屏幕更新,就是說代碼對于excel的操作你可以看見,關閉實時更新可以加快腳本運行。默認是True。
# app.pid    #App進程pid
# app.books  #返回一個打開的全部workbook的列表。Python打開的和手動打開的是不互通的
# 終止進程,強制退出。
# app.quit() #不保存的情況下,退出excel程序

三、工作簿

注意工作簿應該首先被打開

1、新建Excel文檔

wb = app.books.add() #創(chuàng)建新的book
wk = xw.Book()
wk = xw.books.add()

2、 打開Excel文檔

# 支持絕對路徑和相對路徑
wb = app.books.open('filepath')
wk = xw.Book('filepath')
wk = xw.books.open('filepath')
# 練習的時候建議直接用下面這條
# wb = xw.Book('example.xlsx')
# 這樣的話就不會頻繁打開新的Excel

3、打開未儲存或未關閉的excel實例

wk = xw.Book('Book1')    
wk = xw.books['Book1']  #也可以使用索引

如果在兩個Excel實例中打開了相同的文件,則需要完全限定它并包含應用程序?qū)嵗?您將通過xw.apps.keys()找到您的應用實例密鑰(PID):

xw.apps[10559].books['FileName.xlsx']
查看所有的實例進程:
xw.apps.keys() #輸出list

kill所有的實例進程:
for i in xw.apps.keys():
  i = 'taskkill/pid ' + str(i) + ' -t -f'     
  os.system(i)

4、打開活動的工作簿

wb = xw.books.active

5、保存

wb.save(path=None)
# 保存工作簿,若為指定路徑,保存在當前工作目錄。 

6、關閉

wk.close()  #在沒有保存的情況下關閉。

7、退出Excel

app.quit()

四、工作表

1、打開工作表

# 可以用名字也可以用索引
sheet = xw.books['工作簿的名字'].sheets['sheet的名字']
sheet = xw.books['工作簿的名字'].sheets[0]

2、打開活動工作表

sheet = xw.sheets.active

3、返回sheet指定的book

book_name = sheet.book

4、返回一個range對象,表示sheet上所有的單元格

sheet_cells = sheet.cells

5、獲取或設置Sheet的名稱

sheet.name
# 返回所有的工作表特定名稱。
sheet_names_list = sheet.names

6、獲取sheet中的所有圖表集合

sheet.charts

7、清空表中所有數(shù)據(jù)和格式。

sheet.clear()

8、清除工作表的內(nèi)容,但保留格式

sheet.clear_contents()

9、刪除工作表

sheet.delete()

10、返回表索引(與excel相同)

sheet.index

11、創(chuàng)建一個新的Sheet并使其成為活動工作表

wb.sheets.add(name=None, before=None, after=None) 
#參數(shù):name(str,default None) - 新工作表的名稱。 如果為None,則默認為Excel的name.before (Sheet, default None) - 一個對象,指定在新工作表添加之前的added.after (Sheet, default None) - 指定工作表之后的工作表的對象 表格已添加。

12、在整個工作表上自動調(diào)整列,行或兩者的寬度

sheet.autofit(axis=None) 
# 參數(shù):axis (string, default None) –要自動調(diào)整行, 使用以下之一: rows 或 r,要自動調(diào)整列, 使用以下之一: columns h c,要自動調(diào)整行和列, 不提供參數(shù)

13、獲取excel sheet多少行多少列

app = xw.App(visible=False, add_book=False)
xls = app.books.open(excel_file)
sheet = xls.sheets[0]
info = sheet.used_range
nrows = info.last_cell.row
ncols = info.last_cell.colum

五、單元格

1、引用A1單元格

rng = xw.books['工作簿的名字'].sheets['sheet的名字']
# 或者
sheet=xw.books['工作簿的名字'].sheets['sheet的名字']
rng=sheet.range('A1')

2、引用活動工作表上的單元格

# 注意Range首字母大寫
rng=xw.Range('A1')
其中需要注意的是單元格的完全引用路徑是:
# 第一個Excel程序的第一個工作薄的第一張sheet的第一個單元格
xw.apps[0].books[0].sheets[0].range('A1')
迅速引用單元格的方式是
sht=xw.books['名字'].sheets['名字']
# A1單元格
rng=sht[’A1']
rng=sht['a1']
# A1:B5單元格
rng=sht['A1:B5']
# 第一行的第一列即a1
rng=sht[0,0] 
# B1單元格
rng=sht[0,1]

3、引用區(qū)域單元格

# A1:J10
rng=sht[:10,:10]
rng=sht.range('a1:a5')
#rng = sht['a1:a5']
#rng = sht[:5,0]

PS: 對于單元格也可以用表示行列的tuple進行引用

# A1單元格的引用
xw.Range(1,1)
#A1:C3單元格的引用
xw.Range((1,1),(3,3))

六、寫入數(shù)據(jù)

1、寫入單個值

# 注意".value“
sht.range('A1').value=1

2、寫入列表

默認按行插入

# 將列表[1,2,3]儲存在A1:C1中
sht.range('A1').value=[1,2,3]
# 等同于
sht.range('A1:A3').value = [1,2,3]

按列插入

# 將列表[1,2,3]儲存在A1:A3中
sht.range('A1').options(transpose=True).value=[1,2,3]

多行輸入就要用二維列表了

# 將2x2表格,即二維數(shù)組,儲存在A1:B2中,如第一行1,2,第二行3,4
sht.range('A1').options(expand='table').value=[[1,2],[3,4]]

七、讀取數(shù)據(jù)

1、讀取單個值

# 將A1的值,讀取到a變量中
a=sht.range('A1').value

2、讀取范圍的值

返回的值是列表形式,多行多列為二維列表,但有一點要注意,返回的數(shù)值默認是浮點數(shù)

#將A1到A2的值,讀取到a列表中
a=sht.range('A1:A2').value
# 將第一行和第二行的數(shù)據(jù)按二維數(shù)組的方式讀取
a=sht.range('A1:B2').value

讀取excel的第一列,先計算單元格的行數(shù)

rng = sht.range('a1').expand('table')
nrows = rng.rows.count

接著就可以按準確范圍讀取了

a = sht.range(f'a1:a{nrows}').value

同理選取一行的數(shù)據(jù)也一樣

ncols = rng.columns.count
#用切片
fst_col = sht[0,:ncols].value

八、常用函數(shù)和方法

1、Book 工作簿常用的api

# 新建工作簿
xw.books.add()
# 引用當前活動工作簿
xw.books.active
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

# 新建工作表
xw.sheets.add(name=None,before=None,after=None)
# 引用當前活動sheet
xw.sheets.active
# 引用某指定sheet
sht=xw.books['工作簿名稱'].sheets['sheet的名稱']
# 激活sheet為活動工作表
sht.activate()
# 清除sheet的內(nèi)容和格式
sht.clear()
# 清除sheet的內(nèi)容
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的內(nèi)容
rng.clear_contents()
# 清除格式和內(nèi)容
rng.clear()
# 取得range的背景色,以元組形式返回RGB值
rng.color
# 設置range的顏色
rng.color=(255,255,255)
# 清除range的背景色
rng.color=None
# 獲得range的第一列列標
rng.column
# 返回range中單元格的數(shù)據(jù)
rng.count
# 返回current_region
rng.current_region
# 返回ctrl + 方向
rng.end('down')
# 獲取公式或者輸入公式
rng.formula='=SUM(B1:B5)'
# 數(shù)組公式
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的行數(shù)和列數(shù)
rng.shape
# 返回range所在的sheet
rng.sheet
#返回range的所有行
rng.rows
# range的第一行
rng.rows[0]
# range的總行數(shù)
rng.rows.count
# 返回range的所有列
rng.columns
# 返回range的第一列
rng.columns[0]
# 返回range的列數(shù)
rng.columns.count
# 所有range的大小自適應
rng.autofit()
# 所有列寬度自適應
rng.columns.autofit()
# 所有行寬度自適應
rng.rows.autofit()

作者:LuckyFrog
鏈接:https://www.jianshu.com/p/e21894fc5501
來源:簡書
著作權歸作者所有。

參考資料:

https://docs.xlwings.org/en/stable/index.html

https://www.kancloud.cn/gnefnuy/xlwings-docs/1127450

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python最好的Excel第三方庫
語法概述 · xlwings中文文檔 · 看云
插上翅膀,讓Excel飛起來——xlwings(一)
xlwings-能讓 Excel 飛上天
Python xlwings模塊簡單使用
python利用xlwings和pandas達到excel的分類匯總的效果
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服