批量转换excel文件格式

批量转换excel、xlsb、csv文件的格式为带BOM头的utf8-csv(excel打开不乱码)

工作中需要奖客户发来的文件(一般为格式固定的excel表格,但是xlsb、excel、csv各种格式都有而且数量比较多)统一转为utf8格式的csv文件,便于上传到系统。

只需要把文件放到需要转换的文件路径下即可
执行exe文件就行。
第一步把exe文件放到需要转换文件的路径
第二步执行exe文件
等待结束即可

以下是没打包成exe前的源码:
import os
import pandas as pd

# 存有文件的路径
current_path = os.getcwd()
# 转换之后存放的路径为“UTF8”,会检查当前路径是否有,没有就创建
utf8_path = os.path.join(current_path, 'UTF8')
if not os.path.exists(utf8_path):
    os.makedirs(utf8_path)

for file_name in os.listdir(current_path):
    # 转换xlsb文件
    if file_name.endswith('.xlsb'):
        # 读取文件r
        df = pd.read_excel(file_name, engine='pyxlsb')
        # 保存文件到指定路径
        utf8_file_dir = os.path.join(utf8_path, file_name)
        df.to_csv(utf8_file_dir.replace('.xlsb', '.csv'), encoding='utf-8-sig', index=False)
        print('xlsb文件"{}"成功转换为csv格式'.format(file_name))
    # 转换excel文件
    if file_name.endswith('.xlsx'):
        df = pd.read_excel(file_name)
        utf8_file_dir = os.path.join(utf8_path, file_name)
        df.to_csv(utf8_file_dir.replace('.xlsx', '.csv'), encoding='utf-8-sig', index=False)
        print('excel文件"{}"成功转换为csv格式'.format(file_name))
    # 转换csv文件
    if file_name.endswith('.csv'):
        df = pd.read_csv(file_name, encoding='gbk', low_memory=False)
        utf8_file_dir = os.path.join(utf8_path, file_name)
        df.to_csv(utf8_file_dir.replace('.csv', 'utf8.csv'), encoding='utf-8-sig', index=False)
        print('csv文件"{}"成功转换为csv格式'.format(file_name))
    # 转换xls文件
    if file_name.endswith('.xls'):
        df = pd.read_excel(file_name, engine='xlrd')
        utf8_file_dir = os.path.join(utf8_path, file_name)
        df.to_csv(utf8_file_dir.replace('.xls', 'utf8.csv'), encoding='utf-8-sig', index=False)
        print('xls文件"{}"成功转换为csv格式'.format(file_name))

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值