用Python讀寫Excel文件
Excel簡介
Excel是Microsoft(微軟)為使用Windows和macOS操作系統(tǒng)開發(fā)的一款電子表格軟件。Excel憑借其直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,一直以來都是最為流行的個人計算機數(shù)據(jù)處理軟件。當然,Excel也有很多競品,例如Google Sheets、LibreOffice Calc、Numbers等,這些競品基本上也能夠兼容Excel,至少能夠讀寫較新版本的Excel文件,當然這些不是我們討論的重點。掌握用Python程序操作Excel文件,可以讓日常辦公自動化的工作更加輕松愉快,而且在很多商業(yè)項目中,導(dǎo)入導(dǎo)出Excel文件都是特別常見的功能。
Python操作Excel需要三方庫的支持,如果要兼容Excel 2007以前的版本,也就是xls
格式的Excel文件,可以使用三方庫xlrd
和xlwt
,前者用于讀Excel文件,后者用于寫Excel文件。如果使用較新版本的Excel,即操作xlsx
格式的Excel文件,可以使用openpyxl
庫,當然這個庫不僅僅可以操作Excel,還可以操作其他基于Office Open XML的電子表格文件。
基于xlwt
和xlrd
操作Excel文件,大家可以先使用下面的命令安裝這兩個三方庫以及配合使用的工具模塊xlutils
。
pip install xlwt xlrd xlutils
讀Excel文件
例如在當前文件夾下有一個名為“阿里巴巴2020年股票數(shù)據(jù).xls”的Excel文件,如果想讀取并顯示該文件的內(nèi)容,可以通過如下所示的代碼來完成。
import xlrd
# 使用xlrd模塊的open_workbook函數(shù)打開指定Excel文件并獲得Book對象(工作簿)
wb = xlrd.open_workbook('阿里巴巴2020年股票數(shù)據(jù).xls')
# 通過Book對象的sheet_names方法可以獲取所有表單名稱
sheetnames = wb.sheet_names()
print(sheetnames)
# 通過指定的表單名稱獲取Sheet對象(工作表)
sheet = wb.sheet_by_name(sheetnames[0])
# 通過Sheet對象的nrows和ncols屬性獲取表單的行數(shù)和列數(shù)
print(sheet.nrows, sheet.ncols)
for row in range(sheet.nrows):
for col in range(sheet.ncols):
# 通過Sheet對象的cell方法獲取指定Cell對象(單元格)
# 通過Cell對象的value屬性獲取單元格中的值
value = sheet.cell(row, col).value
# 對除首行外的其他行進行數(shù)據(jù)格式化處理
if row > 0:
# 第1列的xldate類型先轉(zhuǎn)成元組再格式化為“年月日”的格式
if col == 0:
# xldate_as_tuple函數(shù)的第二個參數(shù)只有0和1兩個取值
# 其中0代表以1900-01-01為基準的日期,1代表以1904-01-01為基準的日期
value = xlrd.xldate_as_tuple(value, 0)
value = f'{value[0]}年{value[1]:>02d}月{value[2]:>02d}日'
# 其他列的number類型處理成小數(shù)點后保留兩位有效數(shù)字的浮點數(shù)
else:
value = f'{value:.2f}'
print(value, end='\t')
print()
# 獲取最后一個單元格的數(shù)據(jù)類型
# 0 - 空值,1 - 字符串,2 - 數(shù)字,3 - 日期,4 - 布爾,5 - 錯誤
last_cell_type = sheet.cell_type(sheet.nrows - 1, sheet.ncols - 1)
print(last_cell_type)
# 獲取第一行的值(列表)
print(sheet.row_values(0))
# 獲取指定行指定列范圍的數(shù)據(jù)(列表)
# 第一個參數(shù)代表行索引,第二個和第三個參數(shù)代表列的開始(含)和結(jié)束(不含)索引
print(sheet.row_slice(3, 0, 5))
提示:上面代碼中使用的Excel文件“阿里巴巴2020年股票數(shù)據(jù).xls”可以通過后面的百度云盤地址進行獲取。鏈接:https://pan.baidu.com/s/1rQujl5RQn9R7PadB2Z5g_g 提取碼:e7b4。
相信通過上面的代碼,大家已經(jīng)了解到了如何讀取一個Excel文件,如果想知道更多關(guān)于xlrd
模塊的知識,可以閱讀它的官方文檔。文章來源:http://www.zghlxwxcb.cn/news/detail-451435.html
寫Excel文件
寫入Excel文件可以通過xlwt
模塊的Workbook
類創(chuàng)建工作簿對象,通過工作簿對象的add_sheet
方法可以添加工作表,通過工作表對象的write
方法可以向指定單元格中寫入數(shù)據(jù),最后通過工作簿對象的save
方法將工作簿寫入到指定的文件或內(nèi)存中。下面的代碼實現(xiàn)了將5
個學生3
門課程的考試成績寫入Excel文件的操作。文章來源地址http://www.zghlxwxcb.cn/news/detail-451435.html
import random
import xlwt
student_names = ['關(guān)羽', '張飛',
到了這里,關(guān)于Python進階(九) -- 操作excel文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!