将.csv文件(Excel类型文件)数据写入c#中的.csv文件(Excel类型文件)

时间:2012-12-25 13:01:58

标签: c# asp.net

我有一个excel .csv文件,其中包含以下格式的单元格数据:

NAME Address Contact
Shoeb   Lko 675567
Rajesh  Banaras 7687678

.csv文件不是仅具有.csv扩展名的文本文件。它是一个使用Microsoft Excel文件制作的csv文件...对于测试你也可以制作.csv文件...为此(1)创建一个excel文件(2)打开这个excel文件(3)转到文件菜单然后单击“另存为”(4)在保存类型中选择CSV(逗号分隔)选项:----现在这是.csv文件,我将从中读取内容并在.csv文件中写入内容

我正在尝试使用C#以相同的格式编写另一个Excel .csv文件。

我使用的代码如下:

//Below line is reading file from system drive
    StreamReader rd = new StreamReader("D:\FilesUploadedToTablet\drivers.csv", true);
//Below line is writing data to file existing in our site folder
    StreamWriter wr = new StreamWriter(Server.MapPath(".") + "\filename\CSVFile.csv");
    wr.Write(rd.ReadToEnd());
    rd.Close();
    wr.Close();

此处StreamReader正在阅读drivers.csv文件,但StreamWriter未将该内容写入CSVFile.csv文件。如果我使用任何文本文件代替.csv文件,那么内容写入成功。我做错了什么?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用BinaryReader()而不是StreamReader()。同时尝试打开StreamReader,如下所示:

   StreamReader("D:\FilesUploadedToTablet\drivers.csv", false);

看起来您只是复制文件,而不是过滤或对其执行任何处理。为什么不使用File.Copy:

  File.Copy("D:\FilesUploadedToTablet\drivers.csv", Server.MapPath(".") + "\filename\CSVFile.csv");

答案 1 :(得分:0)

Thanx所有人建议我...... 我得到了它的解决方案 - 我得到的解决方案如下:

string csvContent = string.Empty; 
if (File.Exists("SourceFilePath")) 
{ 
    StreamReader rd = new StreamReader("SourceFilePath", true); 
    csvContent = rd.ReadToEnd(); 
    rd.Close(); 
    var DestPath = HttpContext.Current.Server.MapPath("~/CSV Files/")+"MyFile.csv";     
    StreamWriter wr = new StreamWriter(DestPath, true); 
    StringBuilder sb = new StringBuilder(csvContent); 
    wr.WriteLine(sb.ToString()); 
    sb.Clear(); 
    wr.Close();