美文网首页Pythonoffice
python保存Excel中每个sheet内容为txt

python保存Excel中每个sheet内容为txt

作者: 生信交流平台 | 来源:发表于2021-02-16 18:10 被阅读0次

    前面给大家介绍过python让繁琐工作自动化,以及Python轻松处理Excel。今天我们来给大家举个具体的例子,如何使用python保存Excel中每个sheet内容为txt。我们知道如果一个Excel文件有多个sheets,你另存为文本文件的时候,默认只会保存当前这一个sheet的内容。如果你想把每个sheet中的内容都另存为txt文件,这个时候就比较繁琐了。sheet数比较少的时候,你手动做一做也还行,如果有十几个sheets,比如一年12个月份的销售情况,每个月份一张sheet,这个时候你就需要操作12次。如果连续统计了十几年的数据,这个时候可能就要操作上百次了。这个时候,懂一点编程,就会让你事半功倍,得心应手。

    废话不多说,我们直接上代码。这里举例的Excel文件有四张sheets,分别是东,南,西, 北四个区的销售情况。遇到更多的sheets,处理方法是一样的。

    #加载openpyxl库
    import openpyxl
    
    #打开Excel文件,这个文件有4个sheet,分别为东,南,西, 北四个区的销售情况
    wb = openpyxl.load_workbook('Region wise Sales Data.xlsx')
    
    #循环来读取每一个sheet中的内容
    #写到对应的东,南,西, 北四个txt文件中
    for sheet in wb.sheetnames:
        #生成一个以sheet名字命名的txt文件
        file = open(sheet + '.txt', 'w')
        #打开对应的sheet
        ws = wb[sheet]
        #循环来读取每一个cell中的内容
        for i in range(1, ws.max_row + 1):
            for j in range(1, ws.max_column + 1):
                #如果cell中的内容为None,那么写到txt中的时候用空来代替
                if ws.cell(i, j).value is None:
                    content = ""
                #如果cell中有内容,将其转换成string写到txt中
                else:
                    content = str(ws.cell(i, j).value)
                #如果是第一列那么前面没有制表符分隔
                if j == 1:
                    file.write(content)
                #否者内容前面加上一个制表符分隔
                else:
                    file.write("\t" + content)
            #每一行写完,换行
            file.write("\n")
        #关掉txt文件
        file.close()
    

    运行完我们会得到四个txt文件

    参考资料:

    1.书籍《python让繁琐工作自动化

    为方便大家交流学习,小编为大家准备了本书的pdf版本,参考下文获取

    python让繁琐工作自动化

    如果喜欢纸质版也可以购买一本,当做工具书,需要的时候随手翻一下。

    Python编程快速上手 让繁琐工作自动化(异步图书出品)

    2.Python轻松处理Excel

    点击获取“Region wise Sales Data.xlsx”文件

    相关文章

      网友评论

        本文标题:python保存Excel中每个sheet内容为txt

        本文链接:https://www.haomeiwen.com/subject/apzvxltx.html