当前位置: 首页 > news >正文

告别手动复制粘贴:C# 实现 Excel 与 TXT 文本文件高效互转

在日常办公和数据处理工作中,Excel 和 TXT文本文件是两种常见的数据存储格式。Excel文件适合进行复杂的数据分析、公式运算和图表生成,而 TXT文件则更适合用于存储和传输纯文本数据,如日志、配置文件或简单的数据列表。很多时候,我们需要在这两种文件格式之间进行转换,例如:

  • 将 Excel 中的表格数据导出为 TXT 文件,以便系统读取或作为数据备份。
  • 将 TXT 文件中的原始数据导入 Excel,以便进一步整理和分析。

如果仅依靠手工操作,过程不仅繁琐,还容易出错。借助编程语言C#,我们可以实现高效、自动化的转换。本文将介绍如何在C#中借助Spire.XLS for .NET库轻松完成 Excel与 TXT 的相互转换。


Excel 与 TXT 文件的特点对比

在介绍实现方法之前,我们先简单对比一下两种文件的特点:

  1. Excel 文件(.xls / .xlsx)
    - 支持多工作表结构
    - 可包含文本、数字、公式、图表等复杂数据
    - 文件体积相对较大,但结构更清晰,适合数据处理
  2. TXT 文件(.txt)
    - 只包含纯文本内容
    - 数据通常以制表符、逗号或其他分隔符区分
    - 文件体积小,易于跨平台和系统传输

因此,Excel 转换为 TXT 时,通常会选择保留表格中的纯文本和分隔符;而 TXT转换为 Excel 时,则需要将文本按照行和列解析,转换成表格结构。


使用 Spire.XLS for .NET 实现转换

Spire.XLS for .NET 是一个专门用于操作 Excel文件的开发库,支持创建、读取、编辑和转换 Excel 文档。它的优点在于:

  • 支持 多种文件格式转换(Excel、CSV、TXT、PDF 等);
  • 无需安装 Microsoft Office 或 Excel 环境;
  • 提供简单易用的 API 接口,适合快速开发。

安装方法

开发者可以在Package Manager Console中执行以下命令来从Nuget安装Spire.XLS:

Install-Package Spire.XLS

下面分别介绍 Excel 转 TXTTXT 转 Excel 的实现方法。


1. Excel 转 TXT

将 Excel 文件导出为 TXT 文件的步骤通常包括:

  • 加载 Excel 文件
  • 选择需要导出的工作表
  • 调用保存方法,指定为 TXT 格式

示例代码:

using Spire.Xls;
using System.Text;class Program
{static void Main(string[] args){// 创建Workbook对象并加载Excel文件Workbook workbook = new Workbook();workbook.LoadFromFile("示例.xlsx");// 获取第一个工作表Worksheet sheet = workbook.Worksheets[0];// 将工作表另存为TXT文件(分隔符为空格,编码为UTF-8)sheet.SaveToFile("导出结果.txt", " ", Encoding.UTF8);}
}

在这个示例中,SaveToFile方法不仅可以指定导出的文件名,还可以设置分隔符(如空格、逗号、制表符等)和编码方式(如UTF-8)。这样可以确保文本文件在不同系统或应用程序中都能正确读取。


2. TXT 转 Excel

与 Excel 转 TXT 相比,将 TXT 文件转换为 Excel 通常需要更多处理步骤。TXT文件本质上是纯文本,需要开发者手动解析其中的行和列,再写入到 Excel的单元格中。这样不仅能正确还原表格结构,还可以灵活定制格式,比如加粗标题、自动调整列宽等。

下面的示例演示了如何将一个以制表符分隔的 TXT 文件导入 Excel:

using Spire.Xls;
using System.IO;
using System.Collections.Generic;class TxtToExcelConverter
{static void Main(){// 读取TXT文件中的所有行string[] lines = File.ReadAllLines("数据.txt");// 用列表存储每一行的数据List<string[]> data = new List<string[]>();// 按制表符分割行内容,形成二维结构foreach (string line in lines){data.Add(line.Trim().Split('\t')); // 可根据实际情况调整分隔符}// 创建Workbook对象Workbook workbook = new Workbook();// 获取第一个工作表Worksheet sheet = workbook.Worksheets[0];// 将TXT数据逐行逐列写入Excelfor (int row = 0; row < data.Count; row++){for (int col = 0; col < data[row].Length; col++){sheet.Range[row + 1, col + 1].Value = data[row][col];// 将表头行加粗sheet.Range[1, col + 1].Style.Font.IsBold = true;}}// 自动调整列宽sheet.AllocatedRange.AutoFitColumns();// 保存为Excel文件workbook.SaveToFile("TXT转Excel.xlsx", ExcelVersion.Version2016);workbook.Dispose();}
}

要点:

  • 使用 File.ReadAllLines() 逐行读取 TXT 文件。
  • 每一行通过 Split('\t') 方法拆分为数组(\t 表示制表符)。如果 TXT使用逗号分隔,可以替换为 Split(',')
  • 解析后的二维数据逐行写入 Excel 表格。
  • 表头行单独设置为加粗,增强可读性。
  • 使用 AutoFitColumns() 自动调整列宽,使内容完整显示。

这种方式比直接调用 LoadFromFile()更灵活,尤其适用于格式复杂或分隔方式不统一的 TXT 文件。


常见应用场景

  1. 数据迁移:将系统导出的日志文件(TXT 格式)导入到Excel,便于统计分析。
  2. 报表生成:将 Excel 报表转为 TXT,方便系统读取或作为接口数据。
  3. 跨平台数据交换:某些应用无法直接读取 Excel 文件,通过 TXT转换实现兼容。

总结

Excel 与 TXT文件的相互转换在实际工作中非常常见。手动操作虽然简单,但对于大量文件或重复任务来说效率极低。借助C# 与 Spire.XLS for .NET,开发者可以通过几行代码实现高效、灵活的转换,不仅节省时间,还降低了出错率。满足日常办公自动化和企业系统中的数据处理流程等多种需求。


文章转载自:

http://6nUWmB3g.pgfkL.cn
http://WeDS874r.pgfkL.cn
http://ShKP0vzk.pgfkL.cn
http://7d0WJIA9.pgfkL.cn
http://UG0mweal.pgfkL.cn
http://khdL7edK.pgfkL.cn
http://sk8dbuGc.pgfkL.cn
http://fsDD8qy0.pgfkL.cn
http://dzpBlntz.pgfkL.cn
http://xWrKH5gC.pgfkL.cn
http://gNM87Wh2.pgfkL.cn
http://SLyngiWi.pgfkL.cn
http://iTLilZ6a.pgfkL.cn
http://DBcdq0T8.pgfkL.cn
http://DpZN3fO3.pgfkL.cn
http://HiaugqQr.pgfkL.cn
http://sM0mISwi.pgfkL.cn
http://X4NjnVcW.pgfkL.cn
http://ED8Jmnlz.pgfkL.cn
http://lRk0YuHX.pgfkL.cn
http://ZlN8ncwt.pgfkL.cn
http://ByDgpTOU.pgfkL.cn
http://Iaj1urvJ.pgfkL.cn
http://jvZRDN1F.pgfkL.cn
http://oJm74CrT.pgfkL.cn
http://kIjovck5.pgfkL.cn
http://iaWwuCVg.pgfkL.cn
http://edb5DnWL.pgfkL.cn
http://zJPU2myi.pgfkL.cn
http://IXWMRJx4.pgfkL.cn
http://www.dtcms.com/a/363121.html

相关文章:

  • Visual Studio Code 中为Copilot 添加 Bright Data 的 Web MCP
  • 【Vue】前端 vue2项目搭建入门级(一)
  • 量子電腦組裝之二
  • ECMWF数据批量下载(Windows版本)
  • NLP×第六卷:她给记忆加了筛子——LSTM与GRU的贴靠机制
  • A股大盘数据-20250902分析
  • 微服务的编程测评系统19-我的消息功能-竞赛排名功能
  • 通义万相Wan2.2-S2V-14B:AI视频生成的革命性突破与实践指南
  • 解决Elasticsearch高亮显示被横线截断的问题
  • 食品分类案例
  • 使用云手机进行游戏搬砖划算吗?
  • 2025年09月02日Github流行趋势
  • 在云手机中游戏可以自动更新吗?
  • 深入浅出 RabbitMQ-消息可靠性投递
  • python常用脚本2——opencv读写中文路径
  • Java 中的抽象工厂设计模式​
  • Claude Code SDK 配置Gitlab MCP服务
  • 《多模态与 AIGC:最火的 AI 应用方向》
  • 线扫相机搭配显微镜:解锁微观世界的 “全景高清” 观察模式
  • [光学原理与应用-366]:ZEMAX - 用成像原理说明人眼为什么能看清物体?
  • Java面试实战系列【JVM篇】- JVM内存结构与运行时数据区详解(共享区域)
  • Java 垃圾回收机制(GC算法、GC收集器如G1、CMS)的必会知识点汇总
  • 企业级架构师综合能力项目案例二(项目性能优化方案JVM+数据库+缓存+代码JUC+消息中间件架构+服务熔断降级)
  • 【实时Linux实战系列】实时运动检测与分析系统
  • 鸿蒙NEXT界面交互全解析:弹出框、菜单、气泡提示与模态页面的实战指南
  • 基于FPGA+DSP数据采集平台DMA应用学习
  • 面经分享一:分布式环境下的事务难题:理论边界、实现路径与选型逻辑
  • 破解数字孪生落地难题的三大法宝:动态映射、模块架构与闭环验证
  • Java全栈SASS程序-设计多租户空间隔离架构
  • Cortex-M0 M3 M4的乘法与除法指令对比