中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下如何使用openpyxl處理表格數據

發布時間:2022-01-26 11:25:54 來源:億速云 閱讀:404 作者:小新 欄目:開發技術

小編給大家分享一下Linux下如何使用openpyxl處理表格數據,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

openpyxl模塊是一個讀寫Excel 2010文檔的Python庫,如果要處理更早格式的Excel文檔,需要用到額外的庫,openpyxl是一個比較綜合的工具,能夠同時讀取和修改Excel文檔。其他很多的與Excel相關的項目基本只支持讀或者寫Excel一種功能。

Linux下如何使用openpyxl處理表格數據

在Centos8中安裝方式如下:

[root@localhost ~]# yum -y install python3-openpyxl

從Excel表格中讀取數據

如果要讀取 Excel 文件,必須使用 load_workbook() 方法打開電子表格。之后可以使用 active 來選擇第一個可用的工作表,并通過傳遞 row 和 column 參數使用 cell() 屬性來選擇單元格。value 屬性返回特定單元格的值。請參閱下面的示例以獲得更好的理解。

注意:第一行或第一列整數是 1,而不是 0。

下面的數據可以保存在excel表格文件中,用來做下面的實驗,文件名稱為wb.xlsx

NameCourseBranchSemester
AnkitB.TechCSE4
RahulM.TechCSE2
PriyaMBAHR3
NikhilB.TechCSE4
NishaB.TechBiotech5
[root@localhost data]# python3# 導入openpyxl庫>>> import openpyxl# path變量指定表格文件的位置>>> path = "/data/wb.xlsx"# 加載表格文件>>> wb_obj = openpyxl.load_workbook(path)# 激活默認的工作表>>> sheet_obj = wb_obj.active# 選擇第一行第一列的單元格,也就是A1單元格>>> cell_obj = sheet_obj.cell(row = 1, column = 1)# 打印單元格所屬位置>>> print(cell_obj)'Sheet1'.A1># 打印A1單元格的值>>> print(cell_obj.value)
Name
Linux下如何使用openpyxl處理表格數據

從多個單元格讀取數據

從多個單元格中讀取數據的方式有兩種。

**方法一:**我們可以分別使用 max_rowmax_column 獲得總行數和總列數。我們可以在 for 循環中使用這些值來根據情況獲取所需行或列或任何單元格的值。讓我們看看如何獲取第一列和第一行的值。

# 使用max_row獲取工作表有多少行的數據>>> row = sheet_obj.max_row# 使用max_column獲取工作表有多少列的數據>>> column = sheet_obj.max_column# 打印行數>>> print("Total Rows: ", row)
Total Rows:  6# 打印列數>>> print("Total Cols: ", column)
Total Cols:  4# 使用for循環打印第一列數據>>> for i in range(1, row + 1):
...   cell_obj = sheet_obj.cell(row = i, column = 1)
...   print(cell_obj.value)
...
Name
Ankit
Rahul
Priya
Nikhil
Nisha# 使用for循環打印第二條數據:>>> for i in range(1, column + 1):
...   cell_obj = sheet_obj.cell(row = 3, column = i)
...   print(cell_obj.value, end = " ")
...
Rahul M.Tech CSE 2

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據 **方法二:**我們還可以使用單元格名稱從多個單元格中讀取。這可以看作是Python的列表切片。

# 選中A1到B6的單元格>>> cell_obj = sheet_obj['A1':'B6']
>>># for玄幻打印兩列的數據>>> for cell1, cell2 in cell_obj:
...   print(cell1.value, cell2.value)
...
Name Course
Ankit B.Tech
Rahul M.Tech
Priya MBA
Nikhil B.Tech
Nisha B.Tech
Linux下如何使用openpyxl處理表格數據

寫入表格數據

首先,讓我們創建一個新的表格,然后我們將一些數據寫入新創建的文件。可以使用 Workbook() 方法創建一個空的表格。讓我們看看下面的例子。

[root@localhost data]# python3# 導入openpyxl庫里面的Workbook>>> from openpyxl import Workbook
>>># 創建空的工作簿>>> workbook = Workbook()
>>># 保存文件>>> workbook.save(filename="/data/sample.xlsx")
>>>

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據 創建一個空文件后,讓我們看看如何使用 Python 向其中添加一些數據。要首先添加數據,我們需要選擇活動工作表,然后使用 cell() 方法,我們可以通過傳遞行號和列號作為其參數來選擇任何特定的單元格。我們也可以使用單元格名稱進行書寫。

# 獲取激活的工作表>>> sheet = workbook.active
>>># 為A1添加Hello值>>> c1 = sheet.cell(row = 1, column = 1, value = 'Hello')# 為B1添加World值>>> C2 = sheet.cell(row = 1, column = 2, value = 'World')
>>># 為A2添加Welcome值>>> C3  = sheet['A2'].value = 'Welcome'# 為B2添加Everyone值>>> C4 = sheet['B2'].value = 'Everyone'>>># 保存到文件>>> workbook.save("/data/sample.xlsx")

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

附加數據到表格

在上面的示例中,您將看到每次嘗試寫入表格時,現有數據都會被覆蓋,并且該文件將另存為新文件。發生這種情況是因為 Workbook() 方法總是創建一個新的工作簿文件對象。要寫入現有工作簿,必須使用 load_workbook() 方法打開文件。

[root@localhost data]# python3>>> import openpyxl
>>># 使用load_workbook加載文件>>> wb = openpyxl.load_workbook("/data/sample.xlsx")
>>>
>>> sheet = wb.active
>>>
>>> c = sheet['A3']
>>>
>>> c.value = 'New Data'>>>
>>> wb.save("/data/sample.xlsx")

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據 我們還可以使用 append() 方法在工作表的末尾附加多個數據。

# 定義數據>>> data = (
... (1,2,3),
... (4,5,6)
... )
>>># 使用for循環將內容附加到工作表中>>> for row in data:
...   sheet.append(row)
...
>>> wb.save('/data/sample.xlsx')

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

Excel表格的算術運算

可以通過在電子表格的特定單元格中鍵入公式來執行算術運算。例如,如果我們想求和,則使用 Excel 文件的 =Sum() 公式。

[root@localhost data]# python3>>> import openpyxl
>>># 創建新工作簿>>> wb = openpyxl.Workbook()
>>>
>>> sheet = wb.active
>>># 在單元格中寫入數據>>> sheet['A1'] = 200
>>> sheet['A2'] = 300
>>> sheet['A3'] = 400
>>> sheet['A4'] = 500
>>> sheet['A5'] = 619# 在A7單元格求和>>> sheet['A7'] = '=SUM(A1:A5)'>>># 保存文件名稱為sum.xlsx>>> wb.save('/data/sum.xlsx')

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

調整單元格的行和列

工作表對象具有控制行高和列寬的 row_dimensionscolumn_dimensions 屬性。工作表的 row_dimensionscolumn_dimensions 是類似字典的值;row_dimensions 包含 RowDimension 對象, column_dimensions 包含 ColumnDimension 對象。在 row_dimensions 中,可以使用行號(在本例中為 1 或 2)訪問其中一個對象。在 column_dimensions 中,可以使用列的字母(在本例中為 A 或 B)訪問其中一個對象。

[root@localhost data]# python3# 導入模塊>>> import openpyxl
>>># 創建新工作簿>>> wb = openpyxl.Workbook()
>>>
>>> sheet = wb.active
>>># 向A1單元格寫入數據>>> sheet.cell(row = 1, column = 1, value = ' Hello ')'Sheet'.A1># 向B2單元格寫入數據>>> sheet['B2'].value = ' Everyone '>>># 設置第一行單元格高度為45>>> sheet.row_dimensions[1].height = 45
>>># 設置B列單元格寬度為70>>> sheet.column_dimensions['B'].width = 70
>>>
>>> wb.save('/data/h_and_w.xlsx')

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

合并單元格

可以使用 merge_cells() 方法將多個單元格合并為單個單元格。

[root@localhost data]# python3>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active# 合并A2到D4單元格,并添加數據>>> sheet.merge_cells('A2:D4')
>>> sheet['A2'].value = 'Twelve cells join together.'>>># 合并C6到D6單元格,并添加數據>>> sheet.merge_cells('C6:D6')
>>> sheet['C6'].value = 'Two merge cells.'>>>
>>> wb.save('/data/merge_cells.xlsx')

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

取消合并單元格

如要取消合并單元格,請用 unmerge_cells() 方法。

# 取消合并A2到D4單元格>>> sheet.unmerge_cells('A2:D4')
>>># 取消合并C6到D6單元格>>> sheet.unmerge_cells('C6:D6')
>>>
>>> wb.save('/data/merge_cells.xlsx')

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

設置字體樣式

要自定義單元格中的字體樣式,重點是從 openpyxl.styles 模塊導入 Font() 函數。

[root@localhost data]# python3>>> import openpyxl# 從openpyxl.styles導入Font函數>>> from openpyxl.styles import Font
>>>
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active
>>># 為A1單元格添加內容,并設置字體大小為24>>> sheet['A1'].value = 'Linuxprobe.com'>>> sheet['A1'].font = Font(size = 24)# B2單元格添加內容,設置字體大小24,斜體>>> sheet.cell(row = 2, column = 2, value = "Linuxprobe.com").font = Font(size = 24, italic = True)# C3單元格添加內容,設置字體大小24,粗體>>> sheet.cell(row = 3, column = 3, value ="Linuxprobe.com").font = Font(size = 24, bold = True)# D4單元格添加內容,設置字體大小24,設置字體樣式>>> sheet.cell(row = 4, column = 4, value = "Linuxprobe.com").font = Font(size = 24, name = 'Times New Roman')
>>> wb.save('/data/font_styles.xlsx')

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

繪制圖表

要在 Excel 表格上繪制圖表,首先要創建特定圖表類(即 BarChart、LineChart 等)的圖表對象。創建圖表對象后,在其中插入數據,最后將該圖表對象添加到工作表中。

[root@localhost data]# python3>>> import openpyxl# 導入圖表庫>>> from openpyxl.chart import BarChart, Reference
>>>
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active
>>># 使用循環為工作表附加內容>>> for i in range(10):
...   sheet.append([i])
...# 為圖表創建數據>>> values = Reference(sheet, min_col=1,min_row=1,max_col=1,max_row=10)#創建圖表實例>>> chart = BarChart()# 向條形圖添加數據>>> chart.add_data(values)# 添加圖表標題>>> chart.title = " BAR-CHART "# 添加X坐標標題>>> chart.x_axis.title = " X_AXIS "# 添加Y坐標標題>>> chart.y_axis.title = " Y_AXIS ">>># 工作表的E2單元格添加圖表>>> sheet.add_chart(chart, 'E2')
>>>
>>> wb.save("/data/charts.xlsx")

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據 下面實例,是添加折線圖:

[root@localhost data]# python3>>> import openpyxl# 導入圖表庫>>> from openpyxl.chart import LineChart, Reference
>>>
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active
>>># 使用循環為工作表附加內容>>> for i in range(10):
...   sheet.append([i])
...# 為圖表創建數據>>> values = Reference(sheet, min_col=1,min_row=1,max_col=1,max_row=10)#創建圖表實例>>> chart = LineChart()# 向折現圖添加數據>>> chart.add_data(values)# 添加圖表標題>>> chart.title = " LINE-CHART "# 添加X坐標標題>>> chart.x_axis.title = " X_AXIS "# 添加Y坐標標題>>> chart.y_axis.title = " Y_AXIS ">>># 工作表的E2單元格添加圖表>>> sheet.add_chart(chart, 'E2')
>>>
>>> wb.save("/data/charts.xlsx")

Linux下如何使用openpyxl處理表格數據Linux下如何使用openpyxl處理表格數據

添加圖片

為了在我們的工作表中導入圖像,我們將使用 openpyxl.drawing.image.Image。該方法是在pillow庫中找到的 PIL.Image 方法。因此,必須安裝 python3-pillow庫才能使用此方法。

[root@localhost data]# yum -y install python3-pillow[root@localhost data]# python3>>> import openpyxl# 導入Image函數>>> from openpyxl.drawing.image import Image
>>>
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active
>>># 向工作表第一行添加內容>>> sheet.append(["abc",10,"def",20])# 添加圖片>>> img = Image("/data/banner1.jpg")
>>>
>>> sheet.add_image(img, 'A2')
>>>
>>> wb.save("/data/images.xlsx")
Linux下如何使用openpyxl處理表格數據

看完了這篇文章,相信你對“Linux下如何使用openpyxl處理表格數據”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岑溪市| 马龙县| 遂宁市| 莱西市| 平武县| 德保县| 正阳县| 吉林省| 成武县| 宜丰县| 胶南市| 九江市| 灌云县| 阿拉善盟| 绥化市| 天长市| 牡丹江市| 宁化县| 门源| 墨江| 当涂县| 神农架林区| 咸丰县| 龙州县| 聂荣县| 贵南县| 乌鲁木齐市| 东阳市| 潮州市| 湘潭县| 新野县| 铜山县| 南宫市| 托克逊县| 安西县| 麻栗坡县| 南澳县| 柳林县| 高雄市| 邓州市| 五寨县|