如何在 C# 中不重复地导出列 header?
How to export column header without duplication in C#?
我想请您帮忙进行 C# 编程。我正在制作一个应用程序,其功能之一是将图形从数据网格视图导出到 csv 文件。我想在每次保存时将这些数字添加到现有文件中。问题是 header 列也总是被添加。如何导出数字而不 header 重复?
这是我的代码:
StreamWriter sw = new StreamWriter("table_1.csv", true, Encoding.UTF8);
// Column headers:
for (int i = 0; i < dgv_data.ColumnCount; i++)
{
sw.Write(dgv_data.Columns[i].Name + ";");
}
sw.WriteLine();
// rows:
for (r = 0; r < dgv_data.SelectedRows.Count; r++)
{
for (int c = 0; c < dgv_data.ColumnCount; c++)
{
sw.Write(dgv_data.SelectedRows[r].Cells[c].Value.ToString() + ";");
}
sw.WriteLine();
}
sw.Close();
创建文件前检查文件是否存在StreamWriter
:
bool fileExists = File.Exists("table_1.csv");
您必须在 StreamWriter
之前检查,因为如果文件不存在,它将创建该文件。
然后,如果文件已经存在,则跳过输出列headers的代码,如下例所示:
string outputFilename = "table_1.csv";
bool fileExists = File.Exists(outputFilename);
using (StreamWriter sw = new StreamWriter(outputFilename, true, Encoding.UTF8))
{
// Only write column headers if the file is new
if (!fileExists)
{
// Column headers:
for (int i = 0; i < dgv_data.ColumnCount; i++)
{
sw.Write(dgv_data.Columns[i].Name + ";");
}
sw.WriteLine();
}
// rows:
for (r = 0; r < dgv_data.SelectedRows.Count; r++)
{
for (int c = 0; c < dgv_data.ColumnCount; c++)
{
sw.Write(dgv_data.SelectedRows[r].Cells[c].Value.ToString() + ";");
}
sw.WriteLine();
}
sw.Close();
}
我想请您帮忙进行 C# 编程。我正在制作一个应用程序,其功能之一是将图形从数据网格视图导出到 csv 文件。我想在每次保存时将这些数字添加到现有文件中。问题是 header 列也总是被添加。如何导出数字而不 header 重复? 这是我的代码:
StreamWriter sw = new StreamWriter("table_1.csv", true, Encoding.UTF8);
// Column headers:
for (int i = 0; i < dgv_data.ColumnCount; i++)
{
sw.Write(dgv_data.Columns[i].Name + ";");
}
sw.WriteLine();
// rows:
for (r = 0; r < dgv_data.SelectedRows.Count; r++)
{
for (int c = 0; c < dgv_data.ColumnCount; c++)
{
sw.Write(dgv_data.SelectedRows[r].Cells[c].Value.ToString() + ";");
}
sw.WriteLine();
}
sw.Close();
创建文件前检查文件是否存在StreamWriter
:
bool fileExists = File.Exists("table_1.csv");
您必须在 StreamWriter
之前检查,因为如果文件不存在,它将创建该文件。
然后,如果文件已经存在,则跳过输出列headers的代码,如下例所示:
string outputFilename = "table_1.csv";
bool fileExists = File.Exists(outputFilename);
using (StreamWriter sw = new StreamWriter(outputFilename, true, Encoding.UTF8))
{
// Only write column headers if the file is new
if (!fileExists)
{
// Column headers:
for (int i = 0; i < dgv_data.ColumnCount; i++)
{
sw.Write(dgv_data.Columns[i].Name + ";");
}
sw.WriteLine();
}
// rows:
for (r = 0; r < dgv_data.SelectedRows.Count; r++)
{
for (int c = 0; c < dgv_data.ColumnCount; c++)
{
sw.Write(dgv_data.SelectedRows[r].Cells[c].Value.ToString() + ";");
}
sw.WriteLine();
}
sw.Close();
}