import os
import shutil
import xlrd
def open_excel(f_name="./test.xlsx"):
"""
打开excel文件
:param f_name: 文件名
:return: data
"""
try:
data = xlrd.open_workbook(f_name)
return data
except IOError as e:
print(str(e))
def get_stage(f_name="./test.xls", by_name="Sheet1",
quest_index=1, f_dir='客观题', index=4):
"""
根据索引获取EXCEL表格中的数据
:param f_name: 文件名
:param by_name: Sheet1名称
:param quest_index: 问题索引
:param f_dir: 复制文件目录
:param quest_index: 问题ID索引
:param index: 字段索引
:return:
"""
data = open_excel(f_name=f_name) # 打开excel文件
table = data.sheet_by_name(by_name) # 根据sheet名字来获取excel中的sheet
n_rows = table.nrows - 2 # 行数, 减去前两行
for row_num in range(n_rows): # 遍历表格
row = table.row_values(row_num + 2)
stage = row[index-1]
quest_f = row[quest_index-1][3:]+".xls"
qf_name = os.path.join(f_dir, quest_f)
if stage == '小学':
copy_file(f_dir=f_dir+'-'+stage, file=qf_name)
elif stage == '初中':
copy_file(f_dir=f_dir+'-'+stage, file=qf_name)
else:
print("error")
break
def copy_file(file='', f_dir='test'):
"""
将文件复制到指定目录
:param f_dir: 指定目录
:param file: 指定文件
:return:
"""
shutil.copy(src=file, dst=f_dir)
ROOT = "E:/python/project/matrix/data/导出数据5.29"
f_name = '2.总表-主观题-available.xls'
f_dir = '4.学生答题记录-主观题'
sheet = 'Worksheet'
get_stage(f_name=os.path.join(ROOT, f_name),
by_name=sheet, f_dir=os.path.join(ROOT, f_dir))