You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中从List<string>导出Excel?自定义分隔符处理

如何将含自定义分隔符的字符串列表导出为Excel表格

我有一个如下内容的List<string>:

"Food"<|||>"Candy"<|||>"15"
"System"<|||>"IOS, Android"<|||>"2023"
"Fruit"<|||>"Apple,Orange "<|||>"100"
"Wine"<|||>"Whisky"<|||>"250"

我想用特殊字符<|||>作为分隔符,将其导出为包含3列的Excel格式。但不确定能否实现,因为Excel通常默认识别逗号作为分隔符,且部分单元格内容本身包含逗号,这增加了难度。现有代码如下:

var lines = new List<string>();
lines.AddRange(new[] {"Food<|||>Candy<|||>15","System<|||>IOS, Android<|||>2023","Fruit<|||>Apple,Orange <|||>100","Wine<|||>Whisky<|||>250"});
//export to excel 

请问如何实现上述导出需求?


方法1:生成符合规范的CSV文件(推荐,无需额外库)

CSV格式本身支持用双引号包裹含特殊字符(如逗号、双引号)的字段,不会出现内容拆分错误。你可以先将每个字符串按<|||>拆分,再按照CSV规则格式化每行内容:

using System.IO;
using System.Linq;

// 处理每行数据,拆分后按CSV规范格式化字段
var csvLines = lines.Select(line => 
{
    var parts = line.Split(new[] {"<|||>"}, StringSplitOptions.None);
    // 对包含逗号或双引号的字段,用双引号包裹,内部双引号转义为两个双引号
    var formattedParts = parts.Select(part => 
        part.Contains(',') || part.Contains('"') ? $"\"{part.Replace("\"", "\"\"")}\"" : part);
    return string.Join(",", formattedParts);
});

// 写入CSV文件
File.WriteAllLines("output.csv", csvLines);

生成的CSV文件可直接用Excel打开,含逗号的单元格会被正确识别为单个内容。

方法2:使用Excel操作库(直接生成.xlsx文件)

如果需要直接生成标准Excel文件(.xlsx),可以使用EPPlus或NPOI这类第三方库,以下是EPPlus的实现示例:

  1. 先安装EPPlus NuGet包:
Install-Package EPPlus
  1. 编写导出代码:
using OfficeOpenXml;
using System.IO;
using System.Linq;

// EPPlus 5及以上版本需要设置许可证上下文
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

using (var package = new ExcelPackage())
{
    var worksheet = package.Workbook.Worksheets.Add("Data");
    
    // 遍历所有行,拆分后写入对应单元格
    for (int rowIndex = 0; rowIndex < lines.Count; rowIndex++)
    {
        var parts = lines[rowIndex].Split(new[] {"<|||>"}, StringSplitOptions.None);
        for (int colIndex = 0; colIndex < parts.Length; colIndex++)
        {
            worksheet.Cells[rowIndex + 1, colIndex + 1].Value = parts[colIndex];
        }
    }
    
    // 保存Excel文件
    package.SaveAs(new FileInfo("output.xlsx"));
}

这种方法无需处理CSV格式细节,直接操作Excel单元格,兼容性和可读性更好。

方法3:生成自定义分隔符文本文件,手动导入Excel

如果不想编写复杂代码,可以先将内容保存为以<|||>为分隔符的文本文件,再手动导入Excel:

  1. 写入文本文件:
using System.IO;

File.WriteAllLines("output.txt", lines);
  1. Excel导入步骤:
  • 打开Excel,点击「数据」选项卡
  • 选择「自文本/CSV」,选中生成的output.txt
  • 在导入向导中选择「分隔符」,勾选「其他」并输入<|||>作为分隔符
  • 完成导入,内容会自动拆分到3列中

内容的提问来源于stack exchange,提问作者Brian Crist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:10:28