Создание нового текстового документа из DataGridView - PullRequest
0 голосов
/ 21 марта 2019

Я пытался экспортировать мои данные из моего DataGridView в текстовый файл, он работает только тогда, когда у меня уже есть документ TXT, но я хочу, чтобы он автоматически генерировал новые после каждого нажатия кнопки.Помощь будет оценена.Это похоже на то, что у меня сейчас:

TextWriter writer = new StreamWriter(@"C:\folder\Text.txt");
for(int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
     for(int j = 0; j < dataGridView1.Columns.Count; j++)
     {                        
          writer.Write("\t"+dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|");
     }
     writer.WriteLine("");
     writer.WriteLine("-----------------------------------------------------");
}
 writer.Close();
 MessageBox.Show("Data Exported");

Теперь работает, спасибо за помощь.Всем, кто заинтересован, вот код:

string datetime = DateTime.Now.ToString("yyyy-MMMM-dddd-HH-mm-ss");
        string filePath = $@"C:\folder\{datetime}.txt";

        TextWriter writer = new StreamWriter(filePath);
        for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
        {
            for (int j = 0; j < dataGridView1.Columns.Count; j++)
            {
                writer.Write("\t" + dataGridView1.Rows[i].Cells[j].Value.ToString() + "\t" + "|");
            }
            writer.WriteLine("");
            writer.WriteLine("-----------------------------------------------------");
        }
        writer.Close();
        //MessageBox.Show("Data Exported");

Ответы [ 3 ]

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

Попробуйте использовать File.WriteAllText

string path = "C:\folder\Text"
for(int j = 0; j < dataGridView1.Columns.Count; j++)
{
File.WriteAllText(path + j + ".txt", yourTextToWrite);
}

Он создаст новый файл, если TXT-файл не существует.

Для подготовки yourTextToWrite вы можете использовать StringBuilder класс:

StringBuilder yourTextToWrite = new StringBuilder();
yourTextToWrite.Append("text1\n");
yourTextToWrite.Append("text2\n");  
0 голосов
/ 21 марта 2019

Вам просто нужно сделать какое-то уникальное имя для вашего файла.Так что сделайте что-то подобное ниже, где вы используете что-то (это зависит от вас), например строку DateTime.

string datetime = DateTime.Now.ToString("yyyy-MM-dd-HHMM");
string filePath = $@"C:\folder\Text{datetime}.txt";
File.Create(filePath);
TextWriter writer = new StreamWriter(path);
for(int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
     for(int j = 0; j < dataGridView1.Columns.Count; j++)
     {                        
          writer.Write("\t"+dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|");
     }
     writer.WriteLine("");
     writer.WriteLine("-----------------------------------------------------");
}
 writer.Close();
 MessageBox.Show("Data Exported");

Посмотрите документацию вокруг File.Есть много примеров того, как нужно работать с файлами.

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

Вы можете создать перед этим кодом свой собственный текстовый файл, например:

string path = "C:\folder\Text.txt";
if (!File.Exists(path))
{
    File.Create(path);
}

с файлом существует, вы можете проверить, существует ли файл, если нет, то создать его.

...