解决csv文件转excel文件乱码问题,附完整脚本及使用教程
背景

其他部门提供的数据是 csv 文件,业务人员通常熟悉 excel 文件,为方便查看数据,所以要写个程序,将 csv 文件转换为 excel 文件,因经常使用,小编把脚本程序写成了在命令行中使用的形式
业务人员直接打开csv文件,会出现乱码情况,这是因为excel默认的编码是GB2312,而其他部门提供的文件基本都是utf-8编码,所以才会乱码。
完整脚本
该脚本使用了argparse库,目的是为了方便在命令行中使用,要是对该库不太了解,可以查看相关资料来进行学习。
"""
===========================
@Time : 2023/2/1 11:19
@File : csv_to_excel.py
@Software: PyCharm
@Platform: Win10
@Author : DataShare
===========================
"""
import pandas as pd
import argparse
if __name__ == '__main__':
解析器 = 参数解析器(描述为 ) (你提供的内容不完整,请补充完整以便准确改写)'csv_to_excel')
parser.add_argument('--input_file', '-in', type=str, required=True, help='csv文件')
parser.add_argument('--output_file', '-out', type=str, required=False, default=None, help='excel文件')
将参数解析器的参数进行解析,并赋值给args
你提供的内容不完整,请补充完整后让我进行改写。',', dtype='str', quotechar='"', header=0)
print('csv文件行数为:', len(data)) # 判断数据行数是否一致,防止不可见字符,例如:回车 等
if args.output_file is not None:
if args.output_file.endswith('.xlsx'):
输出文件已转换,其值为参数中的输出文件 。
else:
请你提供完整的句子内容,以便我进行准确改写。目前仅给出了“output_file_converted = args.output_file +”,信息不完整。'.xlsx'
else:
你提供的内容不完整,请补充完整后让我进行改写。'.csv')[0] + '.xlsx'
这是因为Excel单个工作表对URL类型数据量的限制为65530 ,超出这个数量的部分将会被舍弃 。
只需把strings_to_urls自动转换功能关掉就行。
你提供的内容不完整,请补充完整后以便我进行改写。'xlsxwriter',
引擎关键字参数等于'options': {'strings_to_urls': False}})
数据被写入Excel文件,使用writer对象,且不包含索引 。False)
writer.close()
print('数据转换完成')
使用教程
前提条件:
使用教程:
将 csv_to_excel.py 文件放置在一个文件夹里,把将要转换的 csv 文件也放置在这个文件夹中 。
运行python程序csv_to_excel.py,输入文件为test.csv 。运行python的csv_to_excel.py脚本,指定输入文件为test.csv
运行python的csv_to_excel.py程序,输入为test.csv,输出为test_convert.xlsx。运行python的csv_to_excel.py脚本,指定输入文件为test.csv,指定输出文件为test_convert.xlsx。