我知道这应该很简单,但我在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#
中吗?
答案 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();