如何将 Windows 窗体数据保存到 csv? [复制]

Posted

技术标签:

【中文标题】如何将 Windows 窗体数据保存到 csv? [复制]【英文标题】:How to save windows form data to csv? [duplicate] 【发布时间】:2021-03-13 09:50:38 【问题描述】:

我目前正在使用此代码将数据保存在 .txt 文件中。 我应该如何创建一个 csv 文件,而不是在每一列中都有正确的标题?

private string _path = "review.txt";
public static void WriteToTextFile(string path, string data, bool append = true, int count = 1)
        
            if (!File.Exists(path))
            
                var file = File.Create(path);
                file.Close();
            
            using (StreamWriter writer = new StreamWriter(path, append: append))
            
                if (!append)
                
                    //remove opening bracket "[" from data passed
                    data = data.Trim().Substring(1, data.Trim().Length - 1);
                    //remove last bracket "]" from data passed
                    data = data.Trim().Substring(0, data.Trim().Length - 1);
                
                if (count != 0)
                
                    data = data + ",";
                
                writer.WriteLine(data);
            
        
        public string SaveReview(Review data)
        
            string str = JsonConvert.SerializeObject(data, Formatting.None);
            Utility.WriteToTextFile(_path, str);
            return "success";
        

【问题讨论】:

还有:***.com/questions/3532162/… & github.com/jitbit/CsvExport 【参考方案1】:

通常,如果您想将数据写入 CSV 文件,您有一系列相似的对象,您想在其中写入大多数属性。每行一个对象,同一行上同一对象的所有属性。 (可选)你想写一个标题。

Nuget Package CSVHelper 是您的合作伙伴。

class Student

    public int Id get; set;
    public string Name get; set;
    public DateTime BirthDay get; set;
    ...


public ICollection<Student> GetStudents() ...

public void SaveStudents(string fileName, ICollection<Student> students)

    using (var textWriter = File.CreateText(fileName))
    
        using (var csvWriter = new CsvWriter(textWriter))
        
            // if you want a Header
            csvWriter.Configuration.HasHeaderRecord = true;
            csvWriter.WriteRecords(students);
        
    

省略写入某些属性,或者格式化写入的数据等有很多可能性。

阅读和写作一样简单。不过要小心:你在写作时做的装饰越多,阅读时你必须去除的装饰就越多。

【讨论】:

以上是关于如何将 Windows 窗体数据保存到 csv? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 C# windows 窗体中制作的保存/加载控件

将 Windows 窗体列表框保存到文本文件 C#

如何让 Windows 窗体将命令传递到控制台/命令行?

如何将access中的数据导出为EXCEL文件?

C# - Windows 窗体应用程序 - 保存文件

如何从 pyspark 数据框中更快地保存 csv 文件?