2

我有一个 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# 以.csv相同的格式编写另一个 Excel 文件。

我正在使用的代码写在下面:

//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 文件,则内容写入成功。我究竟做错了什么?

4

2 回答 2

2

您可以尝试使用 BinaryReader() 而不是 StreamReader()。还可以尝试如下打开 StreamReader:

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

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

  File.Copy("D:\FilesUploadedToTablet\drivers.csv", Server.MapPath(".") + "\filename\CSVFile.csv");
于 2012-12-25T13:18:01.013 回答
0

谢谢大家对我的建议......
我得到了它的解决方案 - 我得到的解决方案写在下面:

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();
于 2012-12-28T11:32:42.517 回答