C# Datagridview:如果单元格值符合条件,则创建新的文本文件
我创建了C# Datagridview:如果单元格值符合条件,则创建新的文本文件,c#,.net,datagridview,C#,.net,Datagridview,我创建了Datagridview,如下图所示,第一列作为参考值 我想基于第一列值将所有行导出到文本文件。 每个Level=0都将使用filename=Level 0 Partnumber 下面是我的代码,但此代码将只在一个文本文件中保存所有数据 SaveFileDialog sv = new SaveFileDialog(); sv.FileName = ""; sv.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; if (sv
Datagridview
,如下图所示,第一列作为参考值
我想基于第一列值将所有行导出到文本文件。
每个Level=0
都将使用filename=Level 0 Partnumber
下面是我的代码,但此代码将只在一个文本文件中保存所有数据
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");
}
SaveFileDialog sv=new SaveFileDialog();
sv.FileName=“”;
sv.Filter=“文本文件(*.txt)|*.txt|所有文件(*.*)|*.”;
如果(sv.ShowDialog()==DialogResult.OK)
{
TextWriter writer=新的StreamWriter(sv.FileName);
writer.Write(“级别\t部件号\t说明”);
writer.WriteLine(“”);
对于(int i=0;i
提前感谢。添加linq名称空间并尝试此功能
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();
}
}
List prdList=new List();
私有void SetValue()
{
产品prd1=新产品
{
级别=0,
PartNumber=“项目A”,
Description=“产品”
};
产品prd2=新产品
{
级别=0,
PartNumber=“项目b”,
Description=“batry”
};
产品prd3=新产品
{
级别=1,
PartNumber=“Item1”,
Description=“产品”
};
产品prd4=新产品
{
级别=1,
PartNumber=“Item2”,
Description=“产品”
};
产品prd5=新产品
{
级别=1,
PartNumber=“Item3”,
Description=“产品”
};
prdList.Add(prd1);
prdList.Add(prd2);
prdList.Add(prd3);
prdList.Add(prd4);
prdList.Add(prd5);
}
私有void CreateTextFile()
{
var newPrdList=prdList.GroupBy(x=>x.Level.ToList();
foreach(newPrdList中的var级别)
{
TextWriter writer=newstreamwriter(“D:\\Level”+levels.FirstOrDefault().Level+”.txt”);
writer.Write(“级别\t部件号\t说明”);
foreach(级别中的var级别)
{
writer.WriteLine(“”);
writer.Write(level.level.ToString()+“\t”);
writer.Write(level.Description+“\t”);
writer.Write(level.PartNumber+“\t”);
writer.WriteLine(“”);
}
writer.Close();
}
}
好的,您正在使用SaveFileDialog
向用户请求一个文件名,然后您正在使用给定的文件名将所有行写入该文件中。这里没有意外。您的图片将创建多少个文件?将基于图片创建2个文本文件。项目A.txt和项目B.txt。谢谢