从文本文件 C# 中加载 dataGridView 中的单元格值
Loading cell values in dataGridView from text file C#
我正在使用 StreamWriter 在 dataGridView 中的所有现有单元格上写入所有值,该编写器工作完美。但是我的 reader 工作不是很好。
这是我的作者代码(没有问题):
StreamWriter writer = new StreamWriter(valuePath);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
writer.WriteLine(cell.Value);
}
}
writer.Close();
这是我的 reader 代码:
StreamReader sr = new StreamReader(valuePath);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
cell.Value = sr.ReadLine();
}
}
sr.Close();
输出:
星期一
1
星期二
2
星期三
3
此代码将 txt 文件中的每一行读入我的 dataGridView 中的 "existing cells",因此当应用程序打开时,只有一行。这就是为什么我的 reader 不能正常工作。有人可以帮我解决这个问题吗??
我建议您以这种格式编写文本文件:
单元格 1、单元格 2、...
单元格 1、单元格 2、...
单元格 1、单元格 2、...
...
为此,请将您的 writer
代码更改为:
StreamWriter writer = new StreamWriter(valuePath);
string line;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
line = "";
foreach (DataGridViewCell cell in row.Cells)
{
line += cell.Value.ToString();
}
writer.WriteLine(line);
}
writer.Close();
reader
代码应相应更改为:
StreamReader sr = new StreamReader(valuePath);
string line;
string[] values;
int n=0;
while(!sr.EndOfStream)
{
line = sr.ReadLine();
values = line.Split(',');
for(int m=0; m<values.Length; m++)
{
dataGridView1[m, n].Value = values[m];
}
n++;
}
sr.Close();
我正在使用 StreamWriter 在 dataGridView 中的所有现有单元格上写入所有值,该编写器工作完美。但是我的 reader 工作不是很好。
这是我的作者代码(没有问题):
StreamWriter writer = new StreamWriter(valuePath);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
writer.WriteLine(cell.Value);
}
}
writer.Close();
这是我的 reader 代码:
StreamReader sr = new StreamReader(valuePath);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
cell.Value = sr.ReadLine();
}
}
sr.Close();
输出: 星期一 1 星期二 2 星期三 3
此代码将 txt 文件中的每一行读入我的 dataGridView 中的 "existing cells",因此当应用程序打开时,只有一行。这就是为什么我的 reader 不能正常工作。有人可以帮我解决这个问题吗??
我建议您以这种格式编写文本文件:
单元格 1、单元格 2、...
单元格 1、单元格 2、...
单元格 1、单元格 2、...
...
为此,请将您的 writer
代码更改为:
StreamWriter writer = new StreamWriter(valuePath);
string line;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
line = "";
foreach (DataGridViewCell cell in row.Cells)
{
line += cell.Value.ToString();
}
writer.WriteLine(line);
}
writer.Close();
reader
代码应相应更改为:
StreamReader sr = new StreamReader(valuePath);
string line;
string[] values;
int n=0;
while(!sr.EndOfStream)
{
line = sr.ReadLine();
values = line.Split(',');
for(int m=0; m<values.Length; m++)
{
dataGridView1[m, n].Value = values[m];
}
n++;
}
sr.Close();