Как добавить заголовок столбца и строки при добавлении данных в файл CSV с помощью C # - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь вставить данные в файл CSV, используя код C #.С помощью кода, который я вставил ниже, я могу добавить заголовок столбца в файл CSV.Но мне нужно добавить заголовок столбца и строки в файл CSV для лучшей читаемости.Пожалуйста, помогите мне в этом.

C # Код

string newFileName = "C:\\AlertReportTill_" + DateTime.Now.ToString("yyyyMMdd_hhmmss") + ".csv";
string AlertDetails = fromDate + "," + toDate + "," + Column1's Value + "," + Column2's Value + ","
        + Column3's Value + "," + Environment.NewLine;

if (!System.IO.File.Exists(newFileName))
        {
            string AlertHeader = "Weekly Report" + Environment.NewLine + "From Date" + "," + "To Date" + "," +
                                 "ColumnHeader1" + "," + "ColumnHeader2" + "," +
                                 "ColumnHeader3" + "," + Environment.NewLine;

            System.IO.File.WriteAllText(newFileName, AlertHeader);
        } //End of If Statement

System.IO.File.AppendAllText(newFileName, AlertDetails);

Для большей ясности, я добавил изображение ниже, чтобы помочь вам понять мой вопрос.Было бы очень полезно, если бы кто-то мог разобраться во мне.Заранее спасибо.

ExpectedOutput

1 Ответ

0 голосов
/ 11 марта 2019

Попробуйте следующее:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication104
{
    class Program
    {
        static void Main(string[] args)
        {
            string oldFileName = "C:\\AlertReportTill.csv";
            string newFileName = string.Format("C:\\AlertReportTill_{0}.csv", DateTime.Now.ToString("yyyyMMdd_hhmmss"));

            StreamReader reader = new StreamReader(oldFileName);
            if (!System.IO.File.Exists(newFileName))
            {
                StreamWriter writer = new StreamWriter(newFileName);
                writer.WriteLine("Weekly Report");


                string AlertHeader = string.Join(",", new string[] 
                   {"",
                    "ColumnHeader1", "ColumnHeader2", "ColumnHeader3"
                   });
                writer.WriteLine(AlertHeader);

                string line = "";
                int RowCount = 0;
                while ((line = reader.ReadLine()) != null)
                {
                    List<string> AlertDetails = line.Split(new char[] { ',' }).ToList();
                    AlertDetails.Insert(0, "RowHeader" + ++RowCount);

                    writer.WriteLine(string.Join(",", AlertDetails));
                }

                reader.Close();
                writer.Flush();
                writer.Close();

            } //End of If Statement

        }
    }
}
...