场景描述
已知:文件夹路径、Excel文件名、存放数据的Sheet名
目标:读取目标文件夹里目标Excel里面目标Sheet里的数据
思路
方法一:利用Pandas模块
import pandas as pd
import os
#-----获取文件夹中所有的Excel文件名-----#
path ='/Users/Desktop/test.data/' #输入文件夹路径
for root,dirs,files in os.walk(path): #files是文件夹里所有的文件名
for i in range(len(files)):
if '.xlsx' not in files[i]: #删除不是Excel格式的文件名
files[i] = []
else:
files[i] = files[i]
files.remove([])
files.sort() #文件名排序
#-----获取目标Excel里目标sheet里的表头和数据-----#
file_path = path+files[0] #获取目标Excel的路径
raw_data = pd.read_excel(file_path, sheet_name = None,header = None) #获取该路径下,Excel里面所有的数据,数据类型是字典,表格名是键,表格里的数据是值
sheet_names = list(raw_data.keys()) #获取所有表格名
target_sheet_data = raw_data[sheet_names[0]] # #获取目标表格的数据
header_name = target_sheet_data.values[0,:] #获取目标表格名的表头名
target_data = target_sheet_data.values[1:len(target_sheet_data),:] #获取目标表格除表头外的数据
print(header_name)
print(target_data)
方法二:利用xlrd模块
import xlrd as xd
import numpy as np
import os
#-----获取文件夹中所有的Excel文件名-----#
path ='/Users/Desktop/test.data/' #输入文件夹路径
for root,dirs,files in os.walk(path): #files是文件夹里所有的文件名
for i in range(len(files)):
if '.xlsx' not in files[i]: #删除不是Excel格式的文件名
files[i] = []
else:
files[i] = files[i]
files.remove([])
files.sort() #文件名排序
#-----获取目标Excel里目标sheet里的表头和数据-----#
file_path = path+files[0] #获取目标Excel的路径
data =xd.open_workbook (file_path) #打开路径下的Excel
sheet_names = data.sheet_names() # 获取目标Ecele里所有工作表名称
target_sheet_data = data.sheet_by_name(sheet_names[0]) #获取目标表格的数据
header_name = target_sheet_data .row_values(0) #获取目标表格的表头名
target_data = []
for i in range(target_sheet_data .nrows-1):
target_data.append(target_sheet_data .row_values(i+1)) #获取目标表格除表头以外的数据,列表数据
target_data = np.array(target_data) #转换成数组
print(header_name)
print(target_data)