我有一个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文件,那么内容写入成功。我做错了什么?
答案 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();