C#利用Spire.XLS for .NET将Excel转换为文本(TXT)的代码步骤
作者:缺点内向
在数据处理场景中,使用C#将Excel转换为文本(TXT) 是常见需求,开发者往往遇到手动转换效率低下、多Sheet数据难以整合、格式丢失等问题,本文基于Spire.XLS for .NET,分享完整代码和步骤,解决Excel转文本的痛点,需要的朋友可以参考下
在数据处理场景中,使用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安全风险。
环境准备
在Visual Studio创建控制台项目(.NET 6/8)。
通过NuGet安装:
Install-Package FreeSpire.XLS
推荐v13.4+版本,支持.NET Framework 4.0+及Core。
添加using:
using Spire.Xls; using System.Text;
准备测试Excel文件(如input.xlsx)。
核心实现步骤
步骤1:加载Workbook并处理多Sheet
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:自定义输出(含异常处理)
若需精确控制范围或格式:
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、大文件支持和高速转换。复制以上代码,提升你的办公效率。
以上就是C#利用Spire.XLS for .NET将Excel转换为文本(TXT)的代码步骤的详细内容,更多关于C# Excel转换为TXT的资料请关注脚本之家其它相关文章!
