1. # 导入所需模块
    2. import xlrd,os,glob
    3. import pandas as pd
    4. '''
    5. 将一个excel文件中的多个sheet分离出来并且以csv格式保存
    6. '''
    7. class csvv:
    8. def __init__(self, excel_file):
    9. self.path = os.getcwd() + '/csv/*.csv'
    10. self.excel2csv(excel_file)
    11. def excel2csv(self, excel_file):
    12. # 打开excel文件
    13. workbook = xlrd.open_workbook(excel_file)
    14. # 获取所有sheet名字
    15. sheet_names = workbook.sheet_names()
    16. for worksheet_name in sheet_names:
    17. # 遍历每个sheet并用Pandas读取
    18. data_xls = pd.read_excel(excel_file, worksheet_name, index_col=None)
    19. # 获取excel当前目录
    20. dir_path = os.path.abspath(os.path.dirname(excel_file))
    21. # 转换成csv并保存到excel所在目录下的csv文件夹中
    22. csv_path = dir_path + '\\csv\\'
    23. if not os.path.exists(csv_path):
    24. os.mkdir(csv_path)
    25. data_xls.to_csv(csv_path + worksheet_name + '.csv', index=None, encoding='utf-8')
    26. self.hebin()
    27. # 将分离出来csv格式的文件合并成一个表
    28. def hebin(self):
    29. csv_list = glob.glob(os.getcwd() + '/csv/*.csv')
    30. print(u'共发现%s个CSV文件' % len(csv_list))
    31. print(u'正在处理')
    32. for i in csv_list: # 循环读取同文件夹下的csv文件
    33. fr = open(i, 'rb').read()
    34. with open('all.csv', 'ab') as f: # 将结果保存为result.cs
    35. f.write(fr)
    36. print(u'合并完毕!')
    37. if __name__ == '__main__':
    38. dirr = os.getcwd() + '\\csv'
    39. if not os.path.exists(dirr):
    40. csvv(os.getcwd() + '\\all.xlsx')