C# 在.Net Core中编写带制表符分隔符的文本文件

C# 在.Net Core中编写带制表符分隔符的文本文件,c#,model-view-controller,entity-framework-core,text-files,asp.net-core-2.2,C#,Model View Controller,Entity Framework Core,Text Files,Asp.net Core 2.2,您好,您是否有任何指南、工作帮助或如何逐步导出为以制表符分隔的文本。我使用Asp.NETCore2.2MVCEF。我想从我的列表中导出一个列表 . 我想有一个按钮,用户点击此下载文件操作将触发 public object DownloadFile() { var payments = new List<BdoPE> { new BdoPE {

您好,您是否有任何指南、工作帮助或如何逐步导出为以制表符分隔的文本。我使用Asp.NETCore2.2MVCEF。我想从我的列表中导出一个列表 . 我想有一个按钮,用户点击此下载文件操作将触发

public object DownloadFile()
        {
            var payments = new List<BdoPE>
            {
                new BdoPE
                {
                    DocDateInDoc = "01/01/2019",
                    DocType = "DZ",
                    CompanyCode = "3000",
                    PosDateInDoc = "01/01/2019",
                    FiscalPeriod = "01",
                    CurrentKey = "PHP",
                    RefDocNum = "Over-The-Counter",
                    DocHeadT = "BDO",
                    PosKeyInNextLine = "40",
                    AccMatNextLine = "11231131",
                    AmountDocCur = "0000000010050",
                    ValDate = "01/01/2019",
                    AssignNum = "EEA",
                    ItemText = "1000136212  ",
                    PosKeyInNextLine2 = "15",
                    AccMatNextLine2 = "0115027FF",
                    AmountDocCur2 = "0000000010050",
                    BaseDateDueCal = "01/01/2019",
                    ItemText2 = "1000136212"
                },
            };

            // I want this part to let the user select where they want to save the text file.
            using (var writer = new StreamWriter("path\\to\\file.txt")) // not static location like this one.

            using (var csv = new CsvWriter(writer))
            {
                csv.WriteHeader<BdoPE>();
                csv.WriteRecord(payments);
            }

            // where should i put the delimiter part?

            return; // to what?
        }
公共对象下载文件()
{
var付款=新列表
{
新领域
{
DocDateInDoc=“01/01/2019”,
DocType=“DZ”,
CompanyCode=“3000”,
PosDateInDoc=“01/01/2019”,
FiscalPeriod=“01”,
CurrentKey=“PHP”,
RefDocNum=“柜台外”,
DocHeadT=“BDO”,
poskeyinextline=“40”,
AccMatNextLine=“11231131”,
AmountDocCur=“00000000 10050”,
ValDate=“01/01/2019”,
AssignNum=“EEA”,
ItemText=“1000136212”,
poskeyinextline2=“15”,
AccMatNextLine2=“0115027FF”,
AmountDocCur2=“00000000 10050”,
BaseDateDueCal=“01/01/2019”,
ItemText2=“1000136212”
},
};
//我希望这一部分允许用户选择保存文本文件的位置。
使用(var writer=newstreamwriter(“path\\to\\file.txt”)//不是像这样的静态位置。
使用(var csv=新csv编写器(编写器))
{
csv.WriteHeader();
csv.书面记录(付款);
}
//分隔符部分应该放在哪里?
return;//返回到什么?
}

您应该使用此软件包

您可以使用制表符分隔符轻松编写文本文件

using CsvHelper;
using System;
using System.Collections.Generic;
using System.IO;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            var records = new List<Foo>
            {
                new Foo { Id = 1, Name = "one" },
            };

            var configuration = new CsvHelper.Configuration.Configuration()
            {
                Delimiter = "\t"
            };

            using (var writer = new StreamWriter("path\\to\\file.csv"))
            using (var csv = new CsvWriter(writer, configuration))
            {
                csv.WriteRecords(records);
            }
        }

        public class Foo
        {
            public int Id { get; set; }
            public string Name { get; set; }
        }
    }
}
使用CsvHelper;
使用制度;
使用System.Collections.Generic;
使用System.IO;
名称空间控制台EAPP5
{
班级计划
{
静态void Main(字符串[]参数)
{
var记录=新列表
{
新Foo{Id=1,Name=“one”},
};
var configuration=new CsvHelper.configuration.configuration()
{
分隔符=“\t”
};
使用(var writer=newstreamwriter(“path\\to\\file.csv”))
使用(var csv=新的csv编写器(编写器、配置))
{
csv.书面记录(记录);
}
}
公开课Foo
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
}
}

谢谢,我正在使用它上载文件,但在文档中找不到如何编写文本文件。Hi@JeePakaJP,但输出是逗号分隔的,而不是制表符分隔的。在配置中设置分隔符属性我将尝试此选项