Python实现csv与excel互转

平时开发时文件读写都是csv比较简单方便,不过有时需要给别人提供excel,或者别人提供excel给自己,那么csv和excel的互转工具就十分有必要写一个了

下面代码保存一个py文件,比如 csvtool.py,放到csv或者excel所在的文件夹,运行即可

# -*- coding: utf-8 -*-
import csv
import os
import xlrd
import xlwt


def csv_2_xls():
    csvfiles = os.listdir('.')
    csvfiles = filter(lambda x: x.endswith('csv'), csvfiles)
    for csvfile in list(csvfiles):
        finename = csvfile.split('.')[0]
        if not os.path.exists('excel'):
            os.mkdir('excel')
        xlsfile = 'excel/' + finename + '.xls'
        with open(csvfile, 'r') as f:
            reader = csv.reader(f)
            workbook = xlwt.Workbook()
            sheet = workbook.add_sheet('sheet1')  # 创建一个sheet表格
            i = 0
            for line in reader:
                j = 0
                for v in line:
                    sheet.write(i, j, v)
                    j += 1
                i += 1
            workbook.save(xlsfile)  # 保存Excel
        print(f'转换完成: {csvfile} -> {xlsfile}')


def xls_2_csv():
    xlsfiles = os.listdir('.')
    xlsfiles = filter(lambda x: x.endswith('xls'), xlsfiles)
    for xlsfile in list(xlsfiles):
        book = xlrd.open_workbook(xlsfile)
        table = book.sheets()[0]
        nrows = table.nrows
        finename = xlsfile.split('.')[0]
        if not os.path.exists('csv'):
            os.mkdir('csv')
        csvfile = 'csv/' + finename + '.csv'
        with open(csvfile, 'w') as f:
            writer = csv.writer(f)
            for i in range(nrows):
                writer.writerow(table.row_values(i))
        print(f'转换完成: {xlsfile} -> {csvfile}')


if __name__ == '__main__':
    csv_2_xls()
    xls_2_csv()

csv转excel:

转换完成: Kira岐牙.csv -> excel/Kira岐牙.xls
转换完成: Yvony蟹太太.csv -> excel/Yvony蟹太太.xls
转换完成: 六神大宝.csv -> excel/六神大宝.xls
转换完成: 单眼皮的妮可.csv -> excel/单眼皮的妮可.xls
转换完成: 小思思SiSi.csv -> excel/小思思SiSi.xls
转换完成: 方枪枪Monica.csv -> excel/方枪枪Monica.xls
转换完成: 朝越南.csv -> excel/朝越南.xls
转换完成: 泪点奇低小丸子.csv -> excel/泪点奇低小丸子.xls
转换完成: 火山大王.csv -> excel/火山大王.xls
转换完成: 褒义词.csv -> excel/褒义词.xls

excel转csv:

转换完成: Kira岐牙.xls -> csv/Kira岐牙.csv
转换完成: Yvony蟹太太.xls -> csv/Yvony蟹太太.csv
转换完成: 六神大宝.xls -> csv/六神大宝.csv
转换完成: 单眼皮的妮可.xls -> csv/单眼皮的妮可.csv
转换完成: 小思思SiSi.xls -> csv/小思思SiSi.csv
转换完成: 方枪枪Monica.xls -> csv/方枪枪Monica.csv
转换完成: 朝越南.xls -> csv/朝越南.csv
转换完成: 泪点奇低小丸子.xls -> csv/泪点奇低小丸子.csv
转换完成: 火山大王.xls -> csv/火山大王.csv
转换完成: 褒义词.xls -> csv/褒义词.csv
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值