2

.csvセルに以下の形式のデータを含む Excelファイルがあります。

NAME Address Contact
Shoeb   Lko 675567
Rajesh  Banaras 7687678

.csv ファイルは、拡張子が .csv だけのテキスト ファイルではありません。これは、Microsoft Excel ファイルを使用して作成された csv ファイルです...テスト用に .csv ファイルを作成することもできます... このために (1) Excel ファイルを作成します (2) この Excel ファイルを開きます (3) ファイル メニューに移動します[名前を付けて保存] をクリックします (4) [ファイルの種類] で CSV (カンマ区切り) オプションを選択します。

.csvC# を使用して、別の 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を読み取っていますが、そのコンテンツをファイルに書き込んでいません。.csv ファイルの代わりにテキスト ファイルを使用すると、コンテンツは正常に書き込まれます。私は何を間違っていますか?drivers.csvStreamWriterCSVFile.csv

4

2 に答える 2

2

StreamReader() の代わりに BinaryReader() を使用してみてください。また、次のように 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 に答える