日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python excel操作库,可能是全网最完整的 Python 操作 Excel库总结!

發布時間:2024/7/23 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python excel操作库,可能是全网最完整的 Python 操作 Excel库总结! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

openpyxl

xlrd/xlwt

xlwings

xlsxwriter

了解各個庫的異同,從而在不同場景下可以靈活使用

首先讓我們來整體把握下不同庫的特點

xlrd

xlwt

xlutils

.xls

xlwt

.xls

xlrd

.xls

xlutils

xlrd

xlwt

.xls

xlrd

xlwt

xlutils

xlwings

XlsxWriter

.xlsx

openpyxl

.xlsx

pandas

如果你懶得看詳細的對比過程,可以直接看最后的總結圖,然后拉到文末收藏點贊就算學會了

非標準庫

pip

多數模塊可以直接通過名字導入,有些模塊約定俗稱會使用縮寫:

import

import

import

as

import

import

import

as

xlutils

xlrd

xlwt

xlrd

.xls

xlwt

.xls

xlutils

xlrd

xlwt

copy

import

3.1 獲取文件

并不是所有7個模塊都可以讀取 Excel 文件,而即使能讀取Excel文件也要分不同后綴名進行討論,具體如下:

xlwt

xlutils

XlsxWriter

xlrd

.xls

.xlsx

xlwings

.xls

.xlsx

openpyxl

.xlsx

pandas

.xls

.xlsx

.xls

.xlsx

r'C:\xxx\Desktop\test.xls'

r'C:\xxx\Desktop\test.xlsx'

xlrd

xlrd

.xls

.xlsx

xlwings

xlwings

xlwings

xlwings

.xls

.xlsx

True

False

#?程序可見,只打開不新建工作薄

False

#?警告關閉

False

#?屏幕更新關閉

#?wb?=?app.books.open(xls_path)

#?保存文件

#?關閉文件

#?關閉程序

openpyxl

openpyxl

.xlsx

.xls

openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.

pandas

pandas

.xls

.xlsx

'Sheet1'

'Sheet1'

.xlsx

import

import

'time?cost:?'

's'

xlwings

xlrd

openpyxl

3.2 獲取工作表

針對上述4個可以讀取 Excel 文件的模塊,進一步討論其獲取工作表 sheet 的方式

xlrd

可以通過 sheet 名查找:

"Sheet1"

也可通過索引查找:

0

xlwings

xlwings

#?在活動工作簿

#?在特定工作簿

openpyxl

.active

另外也可以通過工作表名指定獲取工作表:

'Sheet1'

pandas

pandas

'Sheet1'

簡單總結創建 Excel 文件的情況:

xlrd

xlutils

xlwt

.xls

.xlsx

xlwings

.xls

.xlsx

XlsxWriter

.xlsx

openpyxl

.xls

.xlsx

pandas

.xls

.xlsx

xlwt

xlwt

.xls

.xlsx

'ascii'

#?創建新的sheet表

"Sheet1"

xlwings

xlwings

.xls

.xlsx

保存工作簿、關閉工作簿、關閉程序

r'\new_practice.xlsx'

XlsxWriter

XlsxWriter

.xlsx

#?添加工作表

'Sheet1'

openpyxl

openpyxl

.xls

.xlsx

#?新工作簿中指定即創建工作表

pandas

pandas

pandas

.to_excel

.xls

.xlsx

r'C:\xxx\test1.xlsx'

簡單總結保存 Excel 文件的情況:

xlrd

xlwt

.xls

xlutils

xlrd

xlwt

.xls

xlwings

.xls

.xlsx

XlsxWriter

.xlsx

openpyxl

.xlsx

pandas

.xls

.xlsx

xlwt

xlwt

.xls

#?xls?=?xlwt.Workbook(encoding=?'ascii')

#?worksheet?=?xls.add_sheet("Sheet1")

"new_table.xls"

xlutils

xlutils

xlrd

xlwt

.xls

#?xls_path?=?r'C:\xxxx\test.xls'

#?xls?=?xlrd.open_workbook(xls_path)

'new_text.xls'

xlwings

xlwings

.xls

.xlsx

#?wb?=?app.books.open(xls_path)

#?保存文件

#?關閉文件

#?關閉程序

XlsxWriter

XlsxWriter

.xlsx

.close

#?xlsx?=?xlsxwriter.Workbook()

#?sheet?=?xlsx?.add_worksheet('Sheet1')

openoyxl

openpyxl

.xlsx

#?wb?=?openpyxl.load_workbook(xlsx_path)

#?wb?=?Workbook()

#?sheet?=?wb.active

'new_test.xlsx'

pandas

pandas

.xls

.xlsx

1

2

3

1

2

4

r'C:\xxxx\test1.xls'

r'C:\xxxx\test2.xlsx'

xlrd

xlwings

openpyxl

pandas

xlutils

.xls

xlrd

xlrd

xlutils

xlutils

xlrd

xlrd

xlwt

#?xls?=?xlrd.open_workbook(xls_path)

#?sheet?=?xlsx.sheet_by_name("Sheet1")

4

6

#?第5行第7列的單元格

4

6

for

in

xlwings

#?app?=?xw.App(visible=True,?add_book=False)

#?app.display_alerts?=?False

#?app.screen_updating?=?False

#?wb?=?app.books.open(xls_path)

#?sheet?=?wb.sheets.active

#?獲取單個單元格的值

'A1'

#?獲取橫向或縱向多個單元格的值,返回列表

'A1:A3'

#?獲取給定范圍內多個單元格的值,返回嵌套列表,按行為列表

'A1:C4'

#?獲取單個單元格的值

'A1'

#?獲取橫向或縱向多個單元格的值,返回列表

'A1:A3'

#?獲取給定范圍內多個單元格的值,返回嵌套列表,按行為列表

'A1:C4'

openpyxl

#?wb?=?openpyxl.load_workbook(xlsx_path)

#?wb?=?Workbook()

#?sheet?=?wb.active

#?一、指定坐標范圍的值

'A1:B5'

#?二、指定列的值

'A'

'A:C'

#?三、指定行的值

5

5

7

#?獲取單元格的值

for

in

pandas

pandas

pandas

.iloc()

.loc()

.ix()

0

1

1

'b'

'a'

'a'

#?有些版本取消了ix,可以用iat

還是先簡單總結對 Excel 文件寫入數據的情況:

xlrd

xlwt

xlutils

xlwt

xlwings

XlsxWriter

openpyxl

pandas

xlwt

xlutils

#?xls?=?xlrd.open_workbook(xls_path)

#?xls_xlutils?=?xlutils.copy.copy(xls)

#?sheet?=?xls_xlutils.sheet_by_name("Sheet1")

#?value?=?sheet.cell_value(4,?6)

#?print(value)

4

6

"新內容"

xlwings

#?app?=?xw.App(visible=True,?add_book=False)

#?app.display_alerts?=?False

#?app.screen_updating?=?False

#?wb?=?app.books.open(xls_path)

#?sheet?=?wb.sheets.active

#?寫入?1?個單元格

'A2'

'大明'

#?一行或一列寫入多個單元格

#?橫向寫入A1:C1

'A1'

1

2

3

#?縱向寫入A1:A3

'A1'

True

1

2

3

#?寫入范圍內多個單元格

'A1'

'table'

1

2

3

4

5

6

XlsxWriter

new_format

#?xlsx?=?xlsxwriter.Workbook()

#?sheet?=?xlsx?.add_worksheet('Sheet1')

#?一、寫入單個單元格

#?A1:從A1單元格開始插入數據,按行插入

'A1'

#?A1:從A1單元格開始插入數據,按列插入

'A1'

openpyxl

#?wb?=?openpyxl.load_workbook(xlsx_path)

#?wb?=?Workbook()

#?sheet?=?wb.active

#?一、寫入單元格

'A1'

'業務需求'

#?二、寫入一行或多行數據

1

2

3

1

2

3

4

5

6

依舊簡單總結對 Excel 文件樣式調整的情況:

xlrd

xlutils

xlutils

xlwt

xlwt

xlwings

XlsxWriter

openpyxl

pandas

xlwt

xlwt

#?字體部分

#?初始化樣式

#?為樣式創建字體

'Times?New?Roman'

#字體

True

#加粗

True

#下劃線

True

#斜體

#?設置樣式

#?使用樣式

4

6

"新內容1"

#?邊框部分

#?設置線型

#?設置樣色

0x40

0x40

0x40

0x40

#

#?使用樣式

5

8

"新內容2"

xlwings

xlwings

#?獲取顏色

'C1'

#?設置顏色

'C1'

255

0

120

#?清除顏色

'C1'

None

8.3 XlsxWriter 調整樣式

XlsxWriter

'bold'

True

#?字體加粗

'border'

1

#?單元格邊框寬度

'align'

'left'

#?水平對齊方式

'valign'

'vcenter'

#?垂直對齊方式

'fg_color'

'#F4B084'

#?單元格背景顏色

'text_wrap'

True

#?是否自動換行

8.4 openpyxl 調整樣式

openpyxl

#?字體樣式

from

import

'A1'

'Arial'

12

True

True

'FF0000'

#?段落對齊

from

import

'B2'

'center'

'center'

45

True

#?邊框樣式

from

import

'B2'

'thin'

'FF0000'

'dashed'

簡單總結對 Excel 文件插入圖片的情況:

xlrd

xlutils

xlutils

xlwt

xlwt

.bmp

xlwings

XlsxWriter

openpyxl

pandas

xlwt

xlwt

.bmp

"test.bmp"

2

3

2

2

0.5

0.5

insert_bitmap(img, x, y, x1, y1, scale_x, scale_y)

img

x

y

x1 y1

scale_x scale_y

xlwings

xlwings

r'C:\\xxx.jpg'

#?也可以給定位置插入

r'C:\\xxx.jpg'

'A2'

'A2'

100

100

9.3 XlsxWriter 插入圖片

第一個參數是插入的起始單元格,第二個參數是圖片文件的絕對路徑

'A1'

r'C:\\xxx.jpg'

9.4 openpyxl 插入圖片

openpyxl

from

import

'test.jpg'

180

360

#?設置圖片的寬和高

'A2'

#?往A2單元格插入圖片

以上就是根據不同 Python 模塊,對常見的 Excel 操作進行對比的全部內容,最終結果匯總如下表所示

本文目的并不是要評出一個最好的庫,僅是從不同角度對不同庫進行對比,希望能夠讓大家了解各個庫所擅長的工作

pandas

openpyxl

只有充分了解不同工具的特點,才能夠在不同的場景下靈活運用不同的方法來高效解決問題!

- EOF -

推薦閱讀

點擊標題可跳轉

再見 VBA!神器工具統一 Excel 和 Python

向 Excel 說再見,神級編輯器統一表格與 Python

我用 Python 的 Seaborn 庫,繪制了 17 個超好看圖表!

覺得本文對你有幫助?請分享給更多人

推薦關注「Python開發者」,提升Python技能

點贊和在看就是最大的支持

??

總結

以上是生活随笔為你收集整理的python excel操作库,可能是全网最完整的 Python 操作 Excel库总结!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。