python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python Excel转TXT文本

Python高效实现Excel转TXT文本

作者:LAYONTHEGROUND

在数据处理场景中,将Excel文件转换为纯文本(TXT)格式便成为了一个常见的需求,本文将解析如何通过 Spire.XLS for Python 实现 Excel 到TXT 的高效转换,有需要的可以了解下

在数据处理场景中,将Excel文件转换为纯文本(TXT)格式便成为了一个常见的需求。传统的手动复制粘贴,不仅效率低下,更容易因格式不兼容、数据量庞大而引发错误。本文将解析如何通过 Spire.XLS for Python 实现 Excel 转 TXT 的高效、无依赖操作,提升数据处理效率和灵活性。

安装指令:pip install spire.xls​​

免费版:​​pip install spire.xls.free​​

基础示例:单工作表 Excel 转 TXT

以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤:

1. 加载并读取Excel文件

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("示例.xlsx")

2. 执行转换并保存

sheet = workbook.Worksheets[0]
sheet.SaveToFile("output.txt", "\t", Encoding.get_UTF8())

参数说明

参数类型示例值描述
分隔符\t (制表符)定义 TXT 文件中各列数据之间的分隔方式,也可使用逗号 ,、分号 ; 等。
编码方式Encoding.get_UTF8()(国际通用编码)指定文本文件的编码格式,推荐使用 UTF-8 以保证中文等字符正常显示。

进阶处理:多工作表分别导出为 TXT

如果你的 Excel 文件包含多个工作表,并且希望将每个工作表保存为单独的 TXT 文件,可以使用以下代码:

from spire.xls import *
from spire.xls.common import *

def excel_sheets_to_txt(input_file, output_folder, delimiter="\t"):
  
    # 创建Workbook对象
    workbook = Workbook()
    # 加载Excel文件
    workbook.LoadFromFile(input_file)
        
    # 遍历所有工作表
    for i in range(workbook.Worksheets.Count):
        sheet = workbook.Worksheets[i]
            
        # 构建输出文件路径
        output_file = f"sheet_{i+1}_{sheet.Name}.txt"
        output_path = os.path.join(output_folder, output_file)
            
        # 将工作表内容保存为TXT文件
        sheet.SaveToFile(output_path, delimiter, Encoding.get_UTF8())

知识扩展

1.Python3将Excel数据转换为文本文件

以下是执行转换的Python脚本:

import openpyxl

def xlsx_to_txt(file_path):
    # 加载Excel工作簿
    workbook = openpyxl.load_workbook(file_path)
    # 假设数据在第一个工作表中
    sheet = workbook.active

    # 遍历每一行
    for row_num, row in enumerate(sheet.iter_rows(values_only=True), start=1):
        if row_num > 1:  # 假设第一行是标题行,从第二行开始处理
            # 检查row[1]是否存在,以防有些行可能缺失数据
            if row[1] is not None:
                # 将row[1]的值转换为字符串并写入以row[0]命名的txt文件
                with open(f"{row[0]}.txt", "w", encoding="utf-8") as txt_file:
                    txt_file.write(str(row[1]))

# 假设我们有一个名为`data.xlsx`的Excel文件                    
xlsx_to_txt('data.xlsx')

代码详细解析

1.加载Excel工作簿:

2.选择工作表:workbook.active:获取活动的工作表,通常是第一个工作表。如果工作簿中有多个工作表,您可以使用workbook[sheet_name]选择特定的工作表。

3.遍历数据行:sheet.iter_rows(values_only=True):获取工作表中所有行的生成器,values_only=True表示只提取单元格的值,而不包括格式或样式信息。

4.处理数据:

实际应用场景

这个脚本可以用于以下实际应用:

2.python利用pandas将excel文件转换为txt文件

直接上代码:

import pandas as pd
import re
import codecs
#将excel转化为txt文件
def exceltotxt(excel_dir, txt_dir):
with codecs.open(txt_dir, 'w', 'utf-8') as f:
neg=pd.read_excel(excel_dir, header=none, index=none)
f.write(neg.to_string())
#去除记录行首的数字和空格
def del_linehead_number_speace(orig_txt_dir,saveas_txt_dir):
with open(orig_txt_dir,'r+') as f, open(saveas_txt_dir,'r+') as fw:
lines = f.readlines()
print(len(lines)) #行数
texts = [re.sub(r'(\d)+(\s)+','',lines[num]) for num in range(len(lines)) ]
texts = list(set(texts)) #去重如果要保留重复记录注释该行
line_num = len(texts)
# for num in range(line_num): #查看转化后的文本
# print(texts[num])
fw.writelines(texts)
exceltotxt('./data/neg.xls', './data/neg_temp.txt')
del_linehead_number_speace('./data/neg_temp.txt','./data/neg.txt')

说明:xxx_dir带目标文件名为:xxx_dir='保存路径/'+'文件名'

Excel 转 TXT 在自动化流程中的应用

将 Excel 转换为 TXT 不仅是格式的简单转换,更是实现数据自动化流程的重要环节。结合 Spire.XLS for Python,可轻松构建以下应用:

通过以上方法与示例,您可以快速掌握使用 Python 实现 Excel 到 TXT 的高效转换。该方案不仅提升了数据导出效率,也为后续的数据集成与自动化处理奠定了可靠基础。

到此这篇关于Python高效实现Excel转TXT文本 的文章就介绍到这了,更多相关Python Excel转TXT文本 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文