美文网首页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