创建一个文件名和路径指定的csv文件

时间:2016-03-31 06:32:39

标签: c# csv

我知道这应该很简单,但我在c#中很天真。我有以下对象生成为csv。我能够使用方法here

成功生成csv字符串
[Serializable]
public class UserSession
{
    public string UserName { get; set; }
    public string UserGuid { get; set; }
    public string MachineGuid { get; set; }
    public Guid SessionGuid { get; set; }
    public DateTime LoginTime { get; set; }
    public DateTime? LogOffTime { get; set; }
    public TimeSpan? DesktopReady { get; set; }
    public bool IsReadable { get; set; }
    public int SessionId { get; set; }
}

现在我想将此文件保存在指定的路径中(例如:

  

C:// csvfolder / {MyFileName的}的.csv

有人可以建议将此csv文件写入'myFilename.csv'的方法并将其保存在c://csvfolder中的c#中吗?

2 个答案:

答案 0 :(得分:3)

这应该很简单。看起来你有一个可以将对象序列化为字符串缓冲区的泛型类。

剩下的就是获取包含CSV数据的字符串并将其写入文件。幸运的是,在C#中非常简单:

string path = @"c:\csvfolder\myFilename.csv";

// assuming there's a UserSession object called userSessionObject..
string csvData = ToCsv<UserSession>(",", new [] {userSessionObject});
File.WriteAllText(path, csvData);

答案 1 :(得分:0)

请尝试以下代码,以保存CSV文件(包括创建CSV)

    string path = "c://csvfolder";                      
    string fileName = "FileName.csv";

    StreamWriter SW = new StreamWriter(path, false);

     SW.Write( /*Can create the comma sperated items*/);
    /*Create y our CSV file data here*/

    fs = File.Open(path, FileMode.Open);
    int BUFFER_SIZE = Convert.ToInt32(fs.Length);
    int nBytesRead = 0;
    Byte[] Buffer = new Byte[BUFFER_SIZE];
    nBytesRead = fs.Read(Buffer, 0, BUFFER_SIZE);
    fs.Close();
    Response.AddHeader("Content-disposition", "attachment; filename=" + fileName);
    Response.ContentType = "application/octet-stream";
    Response.BinaryWrite(Buffer);
    Response.Flush();
    Response.End();