.NET办公自动化教程:Spire.XLS操作Excel——导出TXT格式详解

.NET办公自动化教程:Spire.XLS操作Excel------导出TXT格式详解

在数据处理场景中,使用C#将Excel转换为文本(TXT) 是常见需求。开发者往往遇到手动转换效率低下、多Sheet数据难以整合、格式丢失等问题。传统Microsoft.Office.Interop.Excel方法需安装Office环境,服务器部署困难,且处理大文件易崩溃。Spire.XLS for .NET 作为独立库,提供高效解决方案,支持XLS/XLSX读写、多Sheet导出和自定义分隔符,兼容.NET 8,无Office依赖。

本文基于Spire.XLS for .NET,分享完整代码和步骤,解决Excel转文本的痛点,帮助你快速实现自动化转换。


为什么选择Spire.XLS for .NET?

Excel转TXT适用于数据迁移、日志分析或批量报表。痛点包括:

  • Interop:线程安全差,速度慢(10万行需30s+)。
  • 手动:易出错,无批量支持。
方法 优点 缺点 处理速度(10万行)
Interop 原生格式支持 需Excel,单线程,不稳定 35s
Spire.XLS 独立、高速、多平台 免费版行数限制(升级Pro) 2.5s

Spire.XLS支持云端部署,契合.NET 8热点趋势,避免Interop安全风险。


环境准备

  1. 在Visual Studio创建控制台项目(.NET 6/8)。

  2. 通过NuGet安装:

    复制代码
    Install-Package FreeSpire.XLS

    推荐v13.4+版本,支持.NET Framework 4.0+及Core。

  3. 添加using:

    csharp 复制代码
    using Spire.Xls;
    using System.Text;

准备测试Excel文件(如input.xlsx)。


核心实现步骤

步骤1:加载Workbook并处理多Sheet

csharp 复制代码
class Program
{
    static void Main()
    {
        Workbook workbook = new Workbook();
        workbook.LoadFromFile(@"C:\input.xlsx");  // 支持XLS/XLSX

        int index = 0;
        foreach (Worksheet sheet in workbook.Worksheets)
        {
            string output = $"Sheet{index++}_{sheet.Name}.txt";
            sheet.SaveToFile(output, "\t", Encoding.UTF8);  // Tab分隔,UTF-8编码
        }

        workbook.Dispose();
        Console.WriteLine("转换完成!");
    }
}

步骤2:自定义输出(含异常处理)

若需精确控制范围或格式:

csharp 复制代码
static void ConvertWithRange(Worksheet sheet, string output)
{
    try
    {
        StringBuilder sb = new StringBuilder();
        CellRange range = sheet.AllocatedRange;  // 自动检测数据范围

        for (int r = range.Row; r <= range.LastRow; r++)
        {
            for (int c = range.Column; c <= range.LastColumn; c++)
            {
                sb.Append(sheet.Range[r, c].Value?.ToString() ?? "").Append(",");
            }
            sb.AppendLine();
        }
        System.IO.File.WriteAllText(output, sb.ToString(), Encoding.UTF8);
    }
    catch (Exception ex)
    {
        Console.WriteLine($"错误: {ex.Message}");
    }
}

优化提示

  • SaveToFile一键导出,速度最快。
  • 多Sheet自动命名,避免覆盖。

高级用法与注意事项

  • 大文件处理 :免费版限5000行/Sheet,Pro版无限。预加载workbook.LoadFromStream(stream)节省内存。
  • 编码与分隔Encoding.UTF8防乱码;分隔符可选" "(空格)、","(CSV兼容)。
  • 密码文件workbook.LoadFromFile("file.xlsx", "pwd");
  • 性能数据:5MB多Sheet文件,Spire.XLS 1.2s vs Interop 15s。

常见坑:未Dispose workbook导致内存泄漏;中文路径用@"路径"


总结

Spire.XLS for .NET 简化了在C#中将Excel转换为文本(TXT)的步骤,提供多Sheet、大文件支持和高速转换。复制以上代码,提升你的办公效率。

相关推荐
AC赳赳老秦21 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
哲霖软件1 天前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
HBYKKJ1 天前
文氏阀自动化气密性测试解决方案:格雷希尔G10-H定制款快速密封连接器,解决文氏阀宝塔管口同步封堵难题
自动化·气密性测试·格雷希尔·快速密封连接器·非标定制·文氏阀
chatexcel1 天前
AI知识库教程:基于ChatExcel实现规则文档、Excel数据与业务分析联动
人工智能·excel
Yana.nice1 天前
Excel中以当前列的数值作为查找条件,查找匹配的行
excel
Teable任意门互动1 天前
AI原生开源多维表格有哪些?主流开源多维表格对比解析
数据库·开源·excel·钉钉·飞书·开源软件·ai-native
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第八章 使用读写包操作 Excel 文件 上篇)
python·数据分析·excel·pandas
闵孚龙1 天前
Claude Code 工具提示词全拆解:AI Agent、Prompt Engineering、工具调用、上下文工程、自动化编程的底层逻辑
人工智能·自动化·prompt
祀爱1 天前
Asp.net core+ Layui 项目中编辑按钮传递数据的方法
前端·c#·asp.net·layui
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(附录 B 高级 VS Code 功能)
vscode·python·jupyter·数据分析·excel