欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于python xlwings模塊用法詳解

 更新時間:2023年09月05日 10:56:48   作者:士別三日wyx  
xlwings是一個用于在Excel和Python之間進行交互的庫,它允許您使用Python操作Excel文件,包括讀取和寫入數(shù)據(jù),運行宏,設(shè)置格式等等,我們可以使用xlwings來處理Excel文件中的數(shù)據(jù),執(zhí)行各種操作,所以本文小編就給大家python xlwings模塊用法

xlwings 是用來「處理Excel」的Python第三方庫,開源免費,一直在更新。

使用前需要「下載」、安裝 xlwings 模塊

【File】-【Settings】-【Progect:xxx】-【Python Interpreter】

然后「導(dǎo)入模塊」,as是別名,方便后續(xù)調(diào)用

import xlwings as xw

在 xlwings 中

  • App:表示Excel程序
  • Book:表示工作簿
  • Sheet:表示工作表
  • Range:表示單元格

1、快速入門

import xlwings as xw
# 1、打開Excel程序,處理過程可觀
with xw.App(visible=True) as app:
    # 2、選擇使用的工作簿
    book = app.books[0]
    # 3、選擇使用的工作表
    sheet = book.sheets[0]
    # 4、選擇單元格范圍,設(shè)置背景顏色
    sheet.range('A1').color = '#ff0000'
    # 向單元格寫入數(shù)據(jù)
    sheet.range('A2').value = 'hello Excel'
    # 5、保存工作簿
    book.save('myExcel.xlsx')

預(yù)期:文件保存到當(dāng)前目錄,打開后看到我們寫入的內(nèi)容。

2、打開Excel

使用 App() 打開Excel程序,一個App對應(yīng)一個Excel實例。

為了防止僵尸進程,建議這樣「啟動」Excel( with 搭建上下文,會「自動釋放」資源,無需手動close)

import xlwings as xw
with xw.App(visible=True) as app:
    print(app)

輸出:

<App [excel] 5276>

提示:

  • 桌面下方的任務(wù)欄會有Excel的程序一閃而過,這是因為 with 會自動關(guān)閉Excel;
  • 如果 visible=False,則任務(wù)欄看不到變化(程序不可見);
  • 如果直接用 xw.App() 的方式打開Excel,則會在桌面打開Excel,并且不會關(guān)閉。
  • app.activate():活動Excel,將Excel程序放到桌面最前方。focus=True表示將鼠標焦點移動到Excel。

實例

import xlwings as xw
with xw.App(visible=True) as app:
    app.activate(True)

預(yù)期:Excel顯示在桌面最前方(一閃而過)。

3、創(chuàng)建工作簿

在Excel中,「新建」一個工作簿,并返回工作簿對象Book,有三種創(chuàng)建方式:

  • xw.Book()
  • xw.books.add()
  • app.books.add()

實例

import xlwings as xw
with xw.App(visible=True) 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]>, ...])

3.1、使用工作簿

1)「使用」指定的工作簿,根據(jù)工作簿的名字/索引/序號,并返回工作簿對象,有五種方式。
注意:() 根據(jù) 序號 選擇,從1開始;[]根據(jù) 索引 選擇,從0開始。

  • app.books (序號)
  • app.books [索引]
  • xw.books [索引]
  • xw.books (序號)
  • xw.Book (名字)

實例

import xlwings as xw
with xw.App(visible=True) 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)使用指定的工作簿,根據(jù)「文件路徑」(用r字符串包裹路徑),有三種方式

  • xw.Book( 路徑 )
  • xw.books.open( 路徑 )
  • app.books.open( 路徑 )

實例

import xlwings as xw
with xw.App(visible=True) as app:
    print(xw.Book(r'E:\test.xlsx'))
    print(xw.books.open(r'E:\test.xlsx'))
    print(app.books.open(r'E:\test.xlsx'))
    print(app.books)

輸出:

<Book [test.xlsx]>
<Book [test.xlsx]>
<Book [test.xlsx]>
Books([<Book [工作簿1]>, <Book [test.xlsx]>])

3.2、操作工作簿

  • book.name:返回工作簿的名字
  • book.sheets:返回工作簿的所有sheet頁(列表)
  • book.app:返回工作簿所在的App對象(Excel程序)

實例

import xlwings as xw
with xw.App(visible=True) 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$1>

  • book.save():保存工作簿,如果不指定路徑,則保存到當(dāng)前路徑。

語法

book.save( path, password )

參數(shù)

  • path :(可選)文件保存路徑
  • password :(可選)文件打開密碼

實例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    book.save(r'E:/test1.xlsx', 123456)

預(yù)期:文件保存到E盤,打開需要「輸入密碼」。

  • book.to_pdf():導(dǎo)出PDF,如果不指定路徑,則保存到當(dāng)前路徑。

注意:Excel必須有「內(nèi)容」,才能導(dǎo)出PDF,否則會報錯

語法

book.to_pdf( path, include, exclude, show )

參數(shù)

  • path :(可選)PDF文件保存路徑,默認當(dāng)前目錄
  • include :(可選)包含哪些工作表,單個工作表名 或 多個工作表名的列表
  • exclude :(可選)不包含哪些工作表,單個工作表名 或 多個工作表名的列表
  • show :(可選)創(chuàng)建后使用默認應(yīng)用打開PDF,默認值False

實例

import xlwings as xw
with xw.App(visible=True) as app:
    book = app.books[0]
    book.sheets[0]['A1'].value = 'text'
    book.to_pdf(show=True)

預(yù)期:PDF文件保存到當(dāng)前目錄下,并「自動打開」。

4、創(chuàng)建工作表

使用工作簿對象 Book ,「創(chuàng)建」工作表,返回工作表對象 Sheet ,一個 Sheet 對應(yīng)一個工作表,有兩種創(chuàng)建方式:

  • app.books[0].sheets.add()
  • xw.books[0].sheets.add()

創(chuàng)建工作表時,可以「設(shè)置表名」。參數(shù)2中, after 表示插入到某個表后面, before 表示插入到某個表前面。

  • app.books[0].sheets.add('name1')
  • xw.books[0].sheets.add('name2')

實例

import xlwings as xw
with xw.App(visible=True) 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>])

4.1、使用工作表

通過工作簿對象 Book ,「使用」指定的工作表,根據(jù)工作表的名字/索引/序號,并返回工作表對象 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']

注意:() 根據(jù) 序號 選擇,從1開始;[]根據(jù) 索引 選擇,從0開始。

實例

import xlwings as xw
with xw.App(visible=True) 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>])

4.2、操作工作表

1)工作表名

  • app.books[0].sheets[0].name = 'sheetName':設(shè)置工作表名
  • 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():自適應(yīng)行高列寬
  • app.books[0].sheets[0].autofit(axis='rows'):自適應(yīng)行高
  • app.books[0].sheets[0].autofit(axis='columns'):自適應(yīng)列寬

3)導(dǎo)出工作表(不指定路徑,默認保存到當(dāng)前目錄)

  • app.books[0].sheets[0].to_html():導(dǎo)出 HTML
  • app.books[0].sheets[0].to_pdf():導(dǎo)出 PDF(內(nèi)容不能為空)

4)復(fù)制工作表

  • app.books[0].sheets('sheetName').copy():復(fù)制工作表為副本
  • name:(可選,str)副本的名字
  • before:(可選,sheet對象)復(fù)制到哪個工作表之前
  • after:(可選,sheet對象)復(fù)制到哪個工作表之后

4.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():刪除工作表

5、讀寫單元格

單元格不需要創(chuàng)建,選中單元格「范圍」,然后讀寫即可,一個 Range 對應(yīng)一個單元格。

5.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 xw
with xw.App(visible=True) 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$1>

5.2、寫入數(shù)據(jù)到單元格

向指定單元格中寫入數(shù)據(jù),數(shù)據(jù)可以是單個值、一維列表、二維列表

  • sheet.range('A1').value = 'hello Excel'
  • sheet.range('A2').value = [1, 2, 3]
  • sheet.range('A3').value = [[11, 22], [33, 44]]

寫入效果參見下圖

提示:已經(jīng)有數(shù)據(jù)的單元格,再次寫入,會覆蓋原來的數(shù)據(jù),常用來修改單元格數(shù)據(jù)。

5.3、讀取單元格的數(shù)據(jù)

按照A1表示法,讀取指定范圍內(nèi)單元格的數(shù)據(jù),讀出的數(shù)據(jù)可以是單個數(shù)據(jù)、列表二維列表形式。

  • sheet.range('A1').value
  • sheet.range('A2:C2').value
  • sheet.range('A3:B4').value

我們將上一步寫入的數(shù)據(jù)讀出來,輸出結(jié)果如下:

hello Excel
[1.0, 2.0, 3.0]
[[11.0, 22.0], [33.0, 44.0]]

5.4、設(shè)置單元格樣式

1)背景顏色

  • sheet.range('A1:A2').color = '#FF0000':按照顏色代碼設(shè)置顏色
  • sheet.range('B1').color = (255, 255, 0):按照顏色坐標設(shè)置顏色
  • 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:設(shè)置行高
  • sheet.range('A1').column_width = 20:設(shè)置列寬
  • sheet.range('A1').rows.autofit():自適應(yīng)行高
  • sheet.range('A1').columns.autofit():自適應(yīng)列寬
  • sheet.range('A1').autofit():自適應(yīng)行高列寬

3)合并單元格

  • sheet.range('A1:C1').merge():合并單元格
  • sheet.range('B1:C1').unmerge():取消合并
  • sheet.range('A1').merge_area:返回指定單元格的合并范圍,如果沒有合并,就返回單元格本身
  • sheet.range('A1').merge_cells:判斷是否包含合并單元格(True包含;False不包含)

4)函數(shù)公式

  • sheet.range('D1').formula = '=SUM(A1:C1)':設(shè)置函數(shù)公式
  • sheet.range('D1').formula:獲取函數(shù)公式

5)單元格名字

  • sheet.range('A1').name = 'a1_name':設(shè)置單元格名字
  • sheet.range('A1').name:獲取單元格名字

5)單元格名字

  • sheet.range('A1').name = 'a1_name':設(shè)置單元格名字
  • sheet.range('A1').name:獲取單元格名字

5.5、刪除單元格

刪除指定范圍的單元格、數(shù)據(jù)、樣式

  • sheet.range('A1').clear_contents():刪除數(shù)據(jù)但保留樣式
  • sheet.range('A2').clear_formats():刪除樣式但保留數(shù)據(jù)
  • sheet.range('A3').clear():刪除數(shù)據(jù)和樣式
  • sheet.range('A1').delete():刪除單元格

以上就是關(guān)于python xlwings模塊用法詳解的詳細內(nèi)容,更多關(guān)于python xlwings模塊的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 教大家玩轉(zhuǎn)Python字符串處理的七種技巧

    教大家玩轉(zhuǎn)Python字符串處理的七種技巧

    這篇文章主要給大家介紹了關(guān)于學(xué)會Python字符串處理的七種技巧,其中包括字符串的連接和合并、字符串的切片和相乘、字符串的分割、字符串的開頭和結(jié)尾的處理、字符串的查找和匹配、字符串的替換以及字符串中去掉一些字符等操作,需要的朋友可以參考。
    2017-03-03
  • PPOCRLabel標注的txt格式如何轉(zhuǎn)換成labelme能修改的json格式

    PPOCRLabel標注的txt格式如何轉(zhuǎn)換成labelme能修改的json格式

    這篇文章主要介紹了PPOCRLabel標注的txt格式如何轉(zhuǎn)換成labelme能修改的json格式問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 如何在Python里使用ChatGPT及ChatGPT簡介

    如何在Python里使用ChatGPT及ChatGPT簡介

    今年最火的應(yīng)該就是ChatGPT了,現(xiàn)在短短2個月已經(jīng)突破了1億注冊用戶,馬斯克可高興壞了,這篇文章主要介紹了如何在Python里使用ChatGPT及ChatGPT是什么?注冊方式?需要的朋友可以參考下
    2023-02-02
  • Python實現(xiàn)日志備份守護進程的示例

    Python實現(xiàn)日志備份守護進程的示例

    本文主要介紹了Python實現(xiàn)日志備份守護進程的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • django中F與Q查詢的使用

    django中F與Q查詢的使用

    一般查詢都是單條件查詢,F(xiàn)和Q是組合條件查詢,本文主要介紹了django中F與Q查詢的使用,感興趣的可以了解一下
    2021-06-06
  • python實現(xiàn)web郵箱掃描的示例(附源碼)

    python實現(xiàn)web郵箱掃描的示例(附源碼)

    這篇文章主要介紹了python實現(xiàn)web郵箱掃描的示例(附源碼),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python+pyqt5實現(xiàn)圖片批量縮放工具

    python+pyqt5實現(xiàn)圖片批量縮放工具

    這篇文章主要為大家詳細介紹了Python+pyqt5實現(xiàn)圖片批量縮放工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 利用nohup來開啟python文件的方法

    利用nohup來開啟python文件的方法

    今天小編就為大家分享一篇利用nohup來開啟python文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • PyQt6+pyqtgraph折線圖繪制顯示功能

    PyQt6+pyqtgraph折線圖繪制顯示功能

    文章介紹了如何在PyQt6中使用pyqtgraph庫繪制和顯示折線圖,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • python 如何引入?yún)f(xié)程和原理分析

    python 如何引入?yún)f(xié)程和原理分析

    這篇文章主要介紹了python 如何引入?yún)f(xié)程和原理分析,幫助大家更好得理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11

最新評論