讀取excel文件需用到openpyxl,python中可直接安裝,方法如下:
方法1:進(jìn)入cmd命令進(jìn)入所在工程下Scripts中執(zhí)行:pip install openpyxl
方法2:利用pycharm進(jìn)入setting中,如圖所示:
excel文件如下:需要將學(xué)生的成績(jī)信息讀出來(lái)
代碼如下:
#coding=utf-8
import openpyxl
'''
如果只是import了openpyxl,直接用openpyxl.load_wordbook,
如果直接from...import..可以直接用load_workbook
from openpyxl import workbook
from openpyxl import load_workbook
from openpyxl.writer.excel import ExcelWriter
'''
wb = openpyxl.load_workbook(r'C:\Users\user\Desktop\學(xué)生成績(jī)表.xlsx') #讀excel
sheetnames = wb.get_sheet_names() #獲取sheetname
print('該表格共有%d個(gè)sheet格分別為:%s'%(len(sheetnames),sheetnames))
for k in range(0, len(sheetnames)):
ws = wb.get_sheet_by_name(sheetnames[k]) #獲取sheet中的數(shù)據(jù)
rows = ws.max_row #獲取該sheet中行數(shù)最大的值
columns = ws.max_column #獲取該sheet中列數(shù)最大的值
if rows-1 == 0 and columns-1 == 0: #sheet中的行數(shù)列數(shù)為空時(shí)不打印。
break
else:
print(' loading...正在打印第%d個(gè)sheet數(shù)據(jù)...' % (k+1))
print('此為第%d個(gè)sheet,共有%d行,%d列' % (k+1, rows-1, columns))
for i in range(3, rows+1):
#遍歷sheet中的值
core_list = []
for j in range(1, columns+1):
str = ws.cell(i, j).value
core_list.append(str)
print(core_list) #其他功能自己拓展,怎么取值。之類(lèi)的。。。
注意事項(xiàng)(一定要注意注意注意!!!!!!!)
①openpyxl.load_workbook(r'C:\Users\user\Desktop\學(xué)生成績(jī)表.xlsx')中要加r,要不然會(huì)報(bào)錯(cuò):SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX esc 這個(gè)是由于轉(zhuǎn)義符影響的,報(bào)錯(cuò)的具體信息可以自己查看
②遍歷時(shí)注意for的邊界值,如果rows和columns不加1,最后一列和最后一行遍歷不到容易丟失數(shù)據(jù)。
③可以遍歷不同的sheet取值,方法相同類(lèi)似,包括擴(kuò)展怎么取值,取值以后如何展示,這個(gè)看自己的需求。
最后的最后,讀出來(lái)的數(shù)據(jù)如圖: