读取excel文件需用到openpyxl,python中可直接安装,方法如下:
方法1:进入cmd命令进入所在工程下Scripts中执行:pip install openpyxl
方法2:利用pycharm进入setting中,如图所示:
excel文件如下:需要将学生的成绩信息读出来
代码如下:
#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\学生成绩表.xlsx') #读excel
sheetnames = wb.get_sheet_names() #获取sheetname
print('该表格共有%d个sheet格分别为:%s'%(len(sheetnames),sheetnames))
for k in range(0, len(sheetnames)):
ws = wb.get_sheet_by_name(sheetnames[k]) #获取sheet中的数据
rows = ws.max_row #获取该sheet中行数最大的值
columns = ws.max_column #获取该sheet中列数最大的值
if rows-1 == 0 and columns-1 == 0: #sheet中的行数列数为空时不打印。
break
else:
print(' loading...正在打印第%d个sheet数据...' % (k+1))
print('此为第%d个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) #其他功能自己拓展,怎么取值。之类的。。。
注意事项(一定要注意注意注意!!!!!!!)
①openpyxl.load_workbook(r'C:\Users\user\Desktop\学生成绩表.xlsx')中要加r,要不然会报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX esc 这个是由于转义符影响的,报错的具体信息可以自己查看
②遍历时注意for的边界值,如果rows和columns不加1,最后一列和最后一行遍历不到容易丢失数据。
③可以遍历不同的sheet取值,方法相同类似,包括扩展怎么取值,取值以后如何展示,这个看自己的需求。
最后的最后,读出来的数据如图:
联系客服