欧美精品123_精品露脸国产偷人在视频_日韩美女免费线视频_成人av三级

Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

本文的標題是《Python讀取與寫入Excel模塊:openpyxl》來源于:由作者:陳海珍采編而成,主要講述了之前我們介紹過幾個模塊:xlrd、xlwt、XLsxWriter等,但是這些模塊要門只能

之前我們介紹過幾個模塊:xlrd、xlwt、XLsxWriter等,但是這些模塊要門只能只讀,要么只能只寫,那么有沒有即可讀,也可寫的模塊,**是肯定的,如pandas、openpyxl、文2com等,在此介紹其中一個:openpyxl。

openpyxl 是一個用于讀寫Excel的模塊,支持xlsx、xl**、xltx、xltm等文件的讀寫,不支持xls格式,如果讀取大的Excel文件,可以使用read_only(只讀模式),如果寫入大的Excel文件,可以使用write_only(只寫模式)。

一、openpysx模塊創建Excel文件4步法

1.1、Workbook():創建Excel文件

此函數是用來創建Excel文件的一個對象,返回的是一個對象,可以用此對象,創建工作表,保存文件等,如:

import openpyxl # 導入模塊

wb = Workbook() # 生成 Excel 文件對象
print(wb)

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

1.2、create_sheet("sheet_name"):創建工作表

openpyxl 在創建 Excel 文件對象時,會默認創建一個名叫“sheet”的工作表,如果想生成工作表,則需要使用 create_sheet() 函數,可用 wb.sheetnames 屬性查看所有工作表的名稱,如:

import openpyxl # 導入模塊

wb = Workbook() # 生成 Excel 文件對象
print(wb.sheetnames) # 默認生成的工作表 sheet
wb.create_sheet("new_sheet")
print(wb.sheetnames) # 增加了工作表 new_sheet

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

備注:openpyxl 在只寫模式下,不會生成默認工作表,此時只能使用 create_sheet() 函數創建。

1.3、向工作表中添加內容

openpyxl 添加內容比較接近 Python 語法,可以使用賦值語句 "=",也可以使用 append()語句(按行加入),如:

import openpyxl # 導入模塊

wb = Workbook() # 生成 Excel 文件對象
ws = wb.active # 默認工作表 sheet

# 添加內容(賦值語句)
ws["A1"] = 3
ws["A2"] = "hello world"

print(ws["A1"].value)
print(ws["A2"].value)

# 添加內容(append語句),按行添加
ws.append(["hello python","hello java","hello php"])
print(ws["A3"].value)
print(ws["B3"].value)
print(ws["C3"].value)

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

1.4、save("filename"):保存文件

當我們完成所有的**作后,就可以使用 save() 函數來保存我們創建的 Excel 文件,filename 是文件名稱及文件所保存的位置,如:

save("file/op/添加數據.xlsx") # 保存文件

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

以上就是 openpyxl 創建 Excel 文件的4個步驟,相比于 XLsxWriter 模塊,openpyxl 在數據添加這塊簡單,方便,與 python 語法接近。

二、openpyxl 讀取 Excel 文件

openpyxl 模塊可以使用 load_workbook("filename") 方法來加載本地 Excel 文件,filename 為文件路徑,如:

import openpyxl # 導入模塊

wb = load_workbook("file/op/編程語言排名榜單.xlsx") # 加載本地 Excel 文件
ws = wb["2019年"]

print("修改前 B3 的值:",ws["B3"].value) # 打印單元格 B3 的值

ws["B3"].value = "HTML" # 修改單元格 B3 的值

print("修改后 B3 的值:",ws["B3"].value) # 打印單元格 B3 的值

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

備注:openpyxl 不能完全讀取所有的內容,因此,如果本地Excel表格含有圖片或者圖表之類的,openpyxl 是不能讀取的,且在打開或者保存相同名稱的Excel表格時,原先表格的圖片或者圖表將會丟失。

三、openpyxl 進階用法

3.1、合并和拆分單元格

3.1.1、merge_cells(*args):合并單元格

在 openpyxl 模塊中,我們可以用 merge_cells(start_row, start_column, end_row, end_column) 方法來合并單元格,其中:

start_row:開始行

start_column:開始列

end_row:結束行

end_column:結束列

import openpyxl # 導入模塊
from openpyxl.styles import Alignment # 導入格式模塊

wb = Workbook() # 創建Excel文件對象
ws = wb.active # 選取當前sheet工作表

ws.merge_cells(start_row = 2,start_column = 1,end_row = 4,end_column = 4) # 合并單元格
# 也可以用 ws.merge_cells("A2:D2")
ws["A2"].alignment = Alignment(horizontal = "center",vertical = "center") # 添加樣式

ws["A2"].value = "合并單元格" # 添加內容

wb.save("file/op/合并單元格.xlsx") # 保存文件

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.1.2、unmerge_cells():拆分單元格

與 merge_cells() 相反,在 openpyxl 模塊中,我們可以用 unmerge_cells(start_row, start_column, end_row, end_column) 方法來拆分單元格,其中:

start_row:開始行

start_column:開始列

end_row:結束行

end_column:結束列

import openpyxl # 導入模塊

wb = load_workbook("file/op/合并單元格.xlsx") # 加載本地 Excel 文件
ws = wb.active # 選取工作表格

ws.unmerge_cells("A2:D4") # 拆分單元格
ws["A2"].value = "拆分單元格" # 添加內容

wb.save("file/op/合并單元格.xlsx") # 保存文件

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.2、行高和列寬

在 openpyxl 中,ws.row_dimensions["row_index"].height 用于設置行高,ws.column_dimensions["col_index"].width 用于設置列寬,如:

import openpyxl # 導入模塊

wb = Workbook() # 創建 Excel 文件對象
ws = wb.active # 選取工作表

ws.row_dimensions[1].height = 40 # 設置行高為 40 字符
ws.column_dimensions["D"].width = 40 # 設置列寬為 40 字符

ws["A1"] = "行高為20個字符" # 添加內容
ws["D1"] = "列寬為40個字符" # 添加內容

wb.save("file/op/設置行高和列寬.xlsx")

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.3、add_image(Image("image_path"),"cell"):插入圖片

在 openpyxl 模塊中,可以使用 add_image() 方法來向單元格添加圖片,如:

import openpyxl # 導入模塊
from openpyxl.drawing.image import Image # 導入圖片模塊

wb = Workbook() # 創建 Excel 文件對象
ws = wb.active # 選取工作表

ws.add_image(Image("file/test.jpg"),"C3") # 在 C3 單元格插入圖片

wb.save("file/op/插入圖片.xlsx")

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.4、HYPERLINK("url","name"):添加鏈接

在 openpyxl 中,添加超鏈接很簡單,使用 HYPERLINK() 即可向單元格里添加超鏈接,如:

import openpyxl # 導入模塊
from openpyxl.styles import Font

wb = Workbook() # 創建 Excel 文件對象
ws = wb.active # 選取工作表

ws["C3"].font = Font(color = '000000FF', i = True, underline = 'single') # 超鏈接文字樣式
ws["C3"].value = '=HYPERLINK("http://www.baidu.com","百度")' # 添加超鏈接

wb.save("file/op/添加鏈接.xlsx") #保存文件

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.4、樣式設置

openpyxl 樣式設置主要有 字體、填充、邊框、對齊、數字格式、保護等,具體用法如下:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

下面我們介紹幾個:

import openpyxl # 導入模塊
from openpyxl.styles import Font, Border, Alignment, PatternFill, Side

wb = Workbook() # 創建 Excel 文件對象
ws = wb.active # 選取工作表

# 字體樣式設置
font = Font(name="黑體",
size=20,
bold=True,
italic=True,
color = '00CC99FF'
)

# 填充樣式設置
fill = PatternFill(fill_type = None,
start_color = 'FFFFFFFF',
end_color = 'FF000000'
)

# 邊框樣式設置
border = Border(left = Side(border_style = 'dotted',color = 'FF000000'),
right = Side(border_style = 'dotted',color = 'FF000000'),
top = Side(border_style = None,color = 'FF000000'),
bottom = Side(border_style = None,color = 'FF000000'),
vertical = Side(border_style = None,color = 'FF000000'),
horizontal = Side(border_style = None,color = 'FF000000')
)

# 對齊方式設置
align = Alignment(horizontal = 'center',
vertical = 'center'
)

C3 = ws["C3"] # 獲取 C3 單元格
C3.value = "I Love Python" # 添加內容
C3.font = font # 設置字體樣式
C3.fill = fill # 設置填充樣式
C3.border = border # 設置邊框樣式
C3.alignment = align # 設置對齊方式

wb.save("file/op/樣式設置.xlsx") #保存文件

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.5、單元格屬性獲取

單元格的屬性比較多,下面列舉幾個比較常用的,如下:

from openpyxl import load_workbook # 導入模塊

wb = load_workbook("file/op/編程語言排名榜單.xlsx") # 打開本地文件
ws = wb.active # 選擇工作表

b5 = ws["B5"] # 獲取單元格 B5
print("單元格 B5 的值:",b5.value) # 獲取 B5 的值
print("單元格 B5 的行索引:",b5.row) # 獲取 B5 的行索引
print("單元格 B5 的列索引:",b5.col_idx) # 獲取 B5 的列索引
print("單元格 B5 的列名稱:",b5.column_letter) # 獲取 B5 的列名稱
print("單元格 B5 的坐標:",b5.coordinate) # 獲取 B5 的坐標
print("單元格 B5 的數據類型:",b5.data_type) # 獲取 B5 的數據類型
print("單元格 B5 的默認編碼:",b5.encoding) # 獲取 B5 的默認編碼
print("單元格 B5 的樣式:",b5.style) # 獲取 B5 的樣式
print("單元格 B5 的樣式id:",b5.style_id) # 獲取 B5 的樣式id

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

3.6、單元格數據獲取

單元格的數據獲取可以使用 value 屬性獲取,如:

from openpyxl import load_workbook # 導入模塊

wb = load_workbook("file/op/編程語言排名榜單.xlsx") # 打開本地文件
ws = wb.active # 選擇工作表

# 單個數據獲取
print("單個數據獲取:",ws["B5"],ws["B6"])

# 按行獲取數據
print("按行獲取數據:")
for i in ws.values:
print(i)

# 范圍獲取數據
print("范圍獲取數據:")
for i in ws["A3:E6"]:
for j in i:
print(j,j.value)

執行結果:


Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)

以上為 openpyxl 的一些簡單介紹,還有很多用法,在此就不一一介紹了,感興趣的朋友,可以參考官方文檔。

Python讀取與寫入Excel模塊:openpyxl(python讀取txt文件內容)
本文原作者為陳海珍,轉載請注明:出處!如該文有不妥之處,請聯系站長刪除,謝謝合作~

原創文章,作者:陳海珍,如若轉載,請注明出處:http://www.uuuxu.com/20220516328138.html

主站蜘蛛池模板: 台州市| 河池市| 永年县| 宣城市| 泸定县| 漾濞| 十堰市| 醴陵市| 高尔夫| 台东县| 溧阳市| 曲周县| 岳阳市| 凯里市| 绥棱县| 雅江县| 崇义县| 潜山县| 涞源县| 吉林省| 江北区| 镇宁| 新竹县| 安福县| 巴中市| 南木林县| 嘉兴市| 湖南省| 宽甸| 张北县| 万山特区| 西林县| 济阳县| 彩票| 银川市| 佛坪县| 夏河县| 大悟县| 枣庄市| 新密市| 沈丘县|