Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中导出不重复的列标题?_C#_Csv_Export To Csv - Fatal编程技术网

如何在C#中导出不重复的列标题?

如何在C#中导出不重复的列标题?,c#,csv,export-to-csv,C#,Csv,Export To Csv,我想请您在C#编程方面提供帮助。我正在制作一个应用程序,其功能之一是将图形从数据网格视图导出到csv文件。我想在每次保存时将图形添加到现有文件中。问题是列标题也总是被添加。如何导出没有标题重复的数字? 这是我的密码: StreamWriter sw = new StreamWriter("table_1.csv", true, Encoding.UTF8); // Column headers: for (int i = 0;

我想请您在C#编程方面提供帮助。我正在制作一个应用程序,其功能之一是将图形从数据网格视图导出到csv文件。我想在每次保存时将图形添加到现有文件中。问题是列标题也总是被添加。如何导出没有标题重复的数字? 这是我的密码:

        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 sw=新的StreamWriter(“table_1.csv”,true,Encoding.UTF8);
//列标题:
对于(int i=0;i
在创建
StreamWriter
之前,只需检查文件是否存在:

bool fileExists = File.Exists("table_1.csv");
您必须在
StreamWriter
之前进行检查,因为如果文件不存在,它将创建该文件

然后,如果文件已经存在,请跳过输出列标题的代码,如下例所示:

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();
}
string outputFilename=“table_1.csv”;
bool fileExists=File.Exists(outputFilename);
使用(StreamWriter sw=new StreamWriter(outputFilename,true,Encoding.UTF8))
{
//仅在文件为新文件时写入列标题
如果(!fileExists)
{
//列标题:
对于(int i=0;i
除非我忽略了什么,否则这难道不是简单到如果文件已经存在,就不写出列名吗?