将Excel文件转为csv文件的python脚本
#!/usr/bin/envpython__author__="lrtao2010"'''Excel文件转csv文件脚本需要将该脚本直接放到要转换的Excel文件同级目录下支持xlsx和xls格式在同级目录下生成名为excel_to_csv.csv的文件,采用UTF-8编码'''importxlrdimportcsvimportos#生成的csv文件名csv_file_name='excel_to_csv.csv'defget_excel_list():#获取Excel文件列表excel_file_list=[]file_list=os.listdir(os.getcwd())forfile_nameinfile_list:iffile_name.endswith('xlsx')orfile_name.endswith('xls'):excel_file_list.append(file_name)returnexcel_file_listdefget_excel_header(excel_name_for_header):#获取表头,并将表头全部变为小写workbook=xlrd.open_workbook(excel_name_for_header)table=workbook.sheet_by_index(0)#row_value=table.row_values(0)row_value=[i.lower()foriintable.row_values(0)]returnrow_valuedefread_excel(excel_name):#读取Excel文件每一行内容到一个列表中workbook=xlrd.open_workbook(excel_name)table=workbook.sheet_by_index(0)#读取第一个sheetnrows=table.nrowsncols=table.ncols#跳过表头,从第一行数据开始读forrows_readinrange(1,nrows):#每行的所有单元格内容组成一个列表row_value=[]forcols_readinrange(ncols):#获取单元格数据类型ctype=table.cell(rows_read,cols_read).ctype#获取单元格数据nu_str=table.cell(rows_read,cols_read).value#判断返回类型#0empty,1string,2number(都是浮点),3date,4boolean,5error#是2(浮点数)的要改为intifctype==2:nu_str=int(nu_str)row_value.append(nu_str)yieldrow_valuedefxlsx_to_csv(csv_file_name,row_value):#生成csv文件withopen(csv_file_name,'a',encoding='utf-8',newline='')asf:#newline=''不加会多空行write=csv.writer(f)write.writerow(row_value)if__name__=='__main__':#获取Excel列表excel_list=get_excel_list()#获取Excel表头并生成csv文件标题xlsx_to_csv(csv_file_name,get_excel_header(excel_list[0]))#生成csv数据内容forexcel_nameinexcel_list:forrow_valueinread_excel(excel_name):xlsx_to_csv(csv_file_name,row_value)print('Excel文件转csv文件结束')
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。