赞
踩
我们手里面有很多个相同结构的Excel表格,项目经理说这样看起来很不直观,你帮我合并到同一个Excel文件中去,我想了一下有两种实现方式:
原始文件分布截图如下:
一、将多个Excel文件通过多表单sheet的形式合并到同一个Excel文件中去,实现如下:
- def trans2Excel(data='Results/',savepath='data.xls'):
- '''
- 将指定目录下所有的Excel文件合并到一个Excel中(多表单sheet的形式)
- '''
- workbook=xlwt.Workbook(encoding='utf-8')
- json_list=os.listdir(data)
- for one_json in json_list:
- one_json_path=data+one_json
- one_code=one_json.split('.')[0].strip()
- one_res_data_list=trans2Excel(data_path=one_json_path)
- print 'one_res_data_list_length: ',len(one_res_data_list)
- i=0
- table=workbook.add_sheet(one_code)
- for one_list in one_res_data_list:
- for j in range(len(one_list)):
- table.write(i,j,one_list[j])
- i+=1
- workbook.save(savepath)
合并后文件截图如下:
从上图可以看到,下方有很多的不同的sheet,就是上述目录中的文件构成的子表单。
二、 通过增加标识列的方式来区分不同Excel文件,进而使用单表单来实现合并,实现如下:
- def trans2Excel2(data='Results/',city_path='city.txt',savepath='data.xls'):
- '''
- 不是多表单sheet的形式,而是一个表单,只是增加了标识列
- '''
- res_list=[['timePoint','rain1h','rain6h','rain12h','rain24h','temperature','humidity','pressure','windSpeed','windDirection','code','name']]
- json_list=os.listdir(data)
- for one_json in json_list:
- one_json_path=data+one_json
- one_code=one_json.split('.')[0].strip()
- one_res_data_list=trans2Excel2(data_path=one_json_path,city_path=city_path)
- print 'one_res_data_list_length: ',len(one_res_data_list)
- if one_res_data_list:
- res_list+=one_res_data_list
- write2Excel(res_list,savepath=savepath)
合并后文件截图如下:
最后两列是我们添加的地区和编码的标识列来区分不同地区。
上面两种方式都可以实现多个相同结构Excel文件合并的问题,不同结构的Excel表单文件没有合并的意义。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。