2017-06-16 7 views
-1

Datagridviewを参照値として最初の列に作成しました。Datagridview:Cell値が基準を満たしている場合、新しいテキストファイルを作成します。

1

私は、最初の列値に基づいて、テキストファイルにすべての行をエクスポートします。 すべてLevel=0は新しいテキストファイルを作成しますfilename= Level 0 Partnumber

以下は私のコードですが、このコードはすべてのデータを1つのテキストファイルに保存します。

SaveFileDialog sv = new SaveFileDialog(); 
sv.FileName = ""; 
sv.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; 
if (sv.ShowDialog() == DialogResult.OK) 
{ 
    TextWriter writer = new StreamWriter(sv.FileName); 
    writer.Write("Level\tPartnumber\tDescription"); 
    writer.WriteLine(""); 
    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
    { 
     for (int j = 0; j < dataGridView1.Columns.Count; j++) 
     { 
      writer.Write(dataGridView1.Rows[i].Cells[j].Value.ToString() + "\t"); 
     } 
     writer.WriteLine(""); 
    } 
    writer.Close(); 
    MessageBox.Show("Data Exported"); 
} 

ありがとうございます。

+0

を試してみてください。ここに驚きはありません。 – Waescher

+0

あなたの写真は何枚作成されますか? –

+0

2つのテキストファイルが画像に基づいて作成されます。 Item A.txt&Item B.txt。ありがとう – xFactor

答えて

0

は、LINQの名前空間を追加して、さて、あなたはその `SaveFileDialog`と、あなたはその与えられたファイル名とそのファイルにすべての行を書いていると、ファイル名をユーザーに求めている。この

List<product> prdList = new List<product>(); 
    private void SetValue() 
    { 
     product prd1 = new product 
     { 
      Level = 0, 
      PartNumber = "Item A", 
      Description = "Product" 
     }; 
     product prd2 = new product 
     { 
      Level = 0, 
      PartNumber = "Item b", 
      Description = "batry" 
     }; 
     product prd3 = new product 
     { 
      Level = 1, 
      PartNumber = "Item1", 
      Description = "Product" 
     }; 
     product prd4 = new product 
     { 
      Level = 1, 
      PartNumber = "Item2", 
      Description = "Product" 
     }; 
     product prd5 = new product 
     { 
      Level = 1, 
      PartNumber = "Item3", 
      Description = "Product" 
     }; 
     prdList.Add(prd1); 
     prdList.Add(prd2); 
     prdList.Add(prd3); 
     prdList.Add(prd4); 
     prdList.Add(prd5); 
    } 

    private void CreateTextFile() 
    { 
     var newPrdList = prdList.GroupBy(x => x.Level).ToList(); 

     foreach (var levels in newPrdList) 
     { 
      TextWriter writer = new StreamWriter("D:\\Level" + levels.FirstOrDefault().Level + ".txt"); 
      writer.Write("Level\tPartnumber\tDescription"); 
      foreach (var level in levels) 
      { 
       writer.WriteLine(""); 
       writer.Write(level.Level.ToString() + "\t"); 
       writer.Write(level.Description + "\t"); 
       writer.Write(level.PartNumber + "\t"); 
       writer.WriteLine(""); 
      } 
      writer.Close(); 
     } 
    } 
関連する問題