數據處理是python程式語言的一大應用領域,而excel又是當下最流行的數據處理軟體,因此用python進行數據處理時,很容易就會碰到excel的處理問題。
工具這裡我們使用xlrd和xlwt來進行excel文件的讀寫
我們使用pip進行安裝
寫入excel直接來看示例
import xlwt
# 創建xls文件對象workbook = xlwt.Workbook()
# 新增兩個表單頁sheet1 = workbook.add_sheet('成績')sheet2 = workbook.add_sheet('匯總')
# 按照單元格來添加數據,第一個參數是行,第二個參數是列# 操作第一個sheetsheet1.write(0, 0, '姓名')sheet1.write(0, 1, '成績')sheet1.write(1, 0, '張三')sheet1.write(1, 1, 80)sheet1.write(2, 0, '李四')sheet1.write(2, 1, 90)sheet1.write(3, 0, '王五')sheet1.write(3, 1, 100)
# 操作第二個sheetsheet2.write(0, 0, '總分')sheet2.write(0, 1, '平均分')sheet2.write(1, 0, 270)sheet2.write(1, 1, 90)
# 保存文件workbook.save('test.xls')執行以上代碼後,在當前目錄下生成test.xls
xlwtxlwt讀取excel針對上面生成的test.xls,使用xlrd進行讀取,來看代碼
import xlrd
# 打開上面創建的test.xls文件wb = xlrd.open_workbook("test.xls")
# sheet數量print(f"sheet數量: {wb.nsheets}")
# 獲取並列印 sheet 名稱print(f"sheet名稱: {wb.sheet_names()}")
# 根據索引獲取sheet1 = wb.sheet_by_index(0)
# 或者根據sheet的名稱獲取# sheet1 = wb.sheet_by_name('成績')
# sheet名稱、行數和列數print(f"sheet {sheet1.name}, 共有{sheet1.nrows}行{sheet1.ncols}列")
# 獲取某個單元格的值print(f"第一行第二列的值為: {sheet1.cell_value(0, 1)}")
# 獲取整行或整列的值rows = sheet1.row_values(0)cols = sheet1.col_values(1)
# 獲取的行列值print(f"第一行的值為: {rows}")print(f"第二列的值為: {cols}")
# 遍歷所有表單內容for sheet in wb.sheets(): for r in range(sheet.nrows): print(sheet.row(r))執行上述代碼,得到輸出
sheet數量: 2sheet名稱: ['成績', '匯總']sheet 成績, 共有4行2列第一行第二列的值為: 成績第一行的值為: ['姓名', '成績']第二列的值為: ['成績', 80.0, 90.0, 100.0][text:'姓名', text:'成績'][text:'張三', number:80.0][text:'李四', number:90.0][text:'王五', number:100.0][text:'總分', text:'平均分'][number:270.0, number:90.0]備註處理excel的開源方法有很多,更多第三方庫請參考文末的參考資料
參考資料http://www.python-excel.org/