pythonexcel工具介绍_Python处理excel的强大工具
Python實現自動化辦公、自動化測試數據驅動,都離不開對excel的操作,下面簡單介紹下,如何使用Python的openpyxl庫處理excel文檔。
首先,Python處理excel的第三方庫有:xlrd,xlwt,openpyxl等。
其中xlrd只能讀excel,xlwt只能寫excel,所以今天我們就重點了解一下openpyxl,它既可以讀寫數據,還能操作工作表,比如生成柱狀圖等。
安裝openpyxl
pip install openpyxl
當然,也可以用國內鏡像安裝:
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
Excel基本概念
·工作簿(workbook):一個 Excel 文檔;·工作表(sheet):一個工作簿可以包含多個表, 如:sheet1, sheet2等;·列(column): 列地址是從 A 開始的;·行(row): 行地址是從 1 開始的;·單元格(cell):指定行和列的格;
Excel操作Excel不管讀寫都是“三板斧”:加載workbook,打開sheet,操作cell
現有工作簿“學生表.xlsx”如下圖:
1.首先導入模塊:from?openpyxl?import?load_workbook
2.加載工作簿:
可以使用相對路徑也可使用絕對路徑wb?=?load_workbook("學生表.xlsx")wb?=?load_workbook("D:\Python_exercises\學生表.xlsx")
3.打開工作表
加載工作簿后,我們要打開一個工作表:#打開工作表兩種方式:#方式一:通過工作表名稱打開工作表sheet=wb["sheet1"]#方式二:獲取活躍的工作表sheet=wb.active????#['sheet1']
順帶介紹一下工作表的其他操作:#獲取所有的工作表wb.sheetnames????#['sheet1']#修改工作表名稱sheet.title="students"#獲取工作表名稱sheet.title????#students
4.單元格常用操作
加載工作簿,打開工作表后就可以操作單元格了,以下是對單元格操作的介紹:
獲取單元格(指定行,指定列)sheet.cell(2,3)????#sheet["C2"]????#
如果要獲取單元格的值,使用value屬性:#方式一sheet.cell(2,3).value????#60#方式二sheet["C2"].value????#60
往單元格(指定行,指定列)中寫入值#方式一sheet.cell(2,4).value="及格"#方式二sheet["D3"]="及格"#方式三sheet.cell(4,4,"良好")#保存工作簿wb.save("學生表.xlsx")
獲取工作表的最大行和最大列#獲取最大行:sheet.max_row????#8#獲取最大列:sheet.max_column????#4
獲取多個單元格方法一:切片方法,結果為一個元組#獲取A1到A3的單元格cell1=sheet['A1:A3']#獲取第一行和第二行的單元格cell2=sheet[1:2]#獲取A列到C列的單元格cell3=sheet['A:C']
方法二:iter_rows?和?iter_cols?方法,此方法得到的是一個可迭代序列#獲取行數1-2且列數1-4的單元格,逐行讀取cell4=sheet.iter_rows(min_row=1,?max_row=2,?min_col=1,?max_col=4)for?cell?in?cell4:print(cell)#?上面獲取的是單元格,如果想得到單元格的值,只需加個參數cell4=sheet.iter_rows(min_row=1,?max_row=2,?min_col=1,?max_col=4,values_only=True)#獲取列數1-4且行數1-2的單元格,逐列讀取cell5=sheet.iter_cols(min_col=1,?max_col=4,min_row=1,?max_row=2)for?cell?in?cell5:print(cell)#同樣,想獲取單元格的值,加參數cell5=sheet.iter_cols(min_col=1,?max_col=4,min_row=1,?max_row=2,values_only=True)
5.插入/刪除行、列#插入行sheet.insert_rows(idx=數字編號,amount=要插入行數)#刪除行sheet.delete_rows(idx=數字編號,amount=要插入行數)
#從第二行開始插入三行sheet.insert_rows(idx=2,amount=3)
#第2行開始刪除3行sheet.delete_rows(idx=2,amount=3)#插入列sheet.insert_cols(idx=數字編號,amount=要插入列數)#刪除列sheet.delete_cols(idx=數字編號,amount=要插入列數)
生成折線圖和柱狀圖
現有Excel文檔“銷售數據.xlsx",表中數據內容如下:
現在我們在excel中生成折線圖,結果如下:
我們還可以生成柱狀圖:
代碼如下:from?openpyxl?import?load_workbook#?生成折線圖from?openpyxl.chart?import?LineChart,Referencewb=load_workbook("銷售數據.xlsx")sheet=wb.activechart=LineChart()#?圖的標題chart.title="手機銷售數據統計"#?y軸標題chart.y_axis.title="銷量(單位:萬臺)"#?x軸標題chart.x_axis.title="季度"#?數據來源data=Reference(worksheet=sheet,min_row=2,max_row=4,min_col=1,max_col=5)#?設定X軸項目名稱,項目名稱來自第一行的第二列至第五行categories=Reference(sheet,min_col=2,min_row=1,max_col=5,max_row=1)#?給折線圖添加數據,數據源中有系列名稱,系列名稱來自行,第一行為系列名稱chart.add_data(data,from_rows=True,titles_from_data=True)chart.set_categories(categories)sheet.add_chart(chart,"B6")wb.save("銷售數據.xlsx")
from?openpyxl?import?load_workbook#生成柱狀圖from?openpyxl.chart?import?BarChart,Referencewb=load_workbook("銷售數據.xlsx")sheet=wb.activebc=BarChart()#?圖的標題bc.title="手機銷售數據統計"#?y軸標題bc.y_axis.title="銷量(單位:萬臺)"#?x軸標題bc.x_axis.title="季度"#?數據來源bc_data=Reference(worksheet=sheet,min_row=2,max_row=4,min_col=1,max_col=5)#?設定X軸項目名稱,項目名稱來自第一行的第二列至第五行bc_cat=Reference(sheet,min_col=2,min_row=1,max_col=5,max_row=1)#?給柱狀圖添加數據,數據源中有系列名稱,系列名稱來自行,第一行為系列名稱bc.add_data(bc_data,from_rows=True,titles_from_data=True)bc.set_categories(bc_cat)sheet.add_chart(bc,"B6")wb.save("銷售數據.xlsx")
總結
以上是生活随笔為你收集整理的pythonexcel工具介绍_Python处理excel的强大工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql50到例题_关于MySQL的经
- 下一篇: python中pyecharts模块全局