Rosa V.G Ответов: 2

Экспорт Datagridview в текстовый файл


У меня есть небольшая программа, которая помогает мне импортировать листы excel в Datagridview, чтобы позже экспортировать их в текстовый файл, но проблема в том, что текстовый файл перезаписывается. Я бы хотел, чтобы каждый раз, когда вы экспортируете содержимое datagridview, создавался новый файл с другим именем, чтобы избежать его перезаписи . Я был бы очень благодарен ему за помощь. Я использую следующий код в кнопку, чтобы экспортировать таблицы в текстовый файл:


Если DataGridView1.RowCount = 0, То
Ящик для сообщений.Show("datagridview пусто")
Еще
Если Каталог.Существует("C:\Foldertxt") = Ложь, То
Каталог.CreateDirectory("C:\Foldertxt")
Конец, Если
Dim sFile As String = "C:\Foldertxt\file.txt"
Если Файл.Exists(sFile) = True тогда
Мой.Компьютер.файловая система.DeleteFile(sFile, FileIO.UIOption.OnlyErrorDialogs, _
FileIO.RecycleOption.DeletePermanently, FileIO.Значение uicanceloption.Пусто)
Конец, Если


Использование f в качестве нового ввода-вывода.StreamWriter(sFile, True)


Dim col As String = ""

Тусклая строка в виде строки = ""
Dim i как целое число = 0
Для каждого R в качестве ячейки datagridviewrow в DataGridView1.Строк
Для каждого c как DataGridViewColumn в DataGridView1.Columns
= строка &амп подряд; "'" &усилителя; конвертировать.Метод toString(Р.Клеток(С. HeaderText).Значение) & "' "
Следующий
Если я < DataGridView1.Rows.Count - 1, затем row &= Environment.NewLine
Следующий


f.WriteLine(строка)
Ящик для сообщений.Показать("файл создан")
Конец Использования
Конец, Если
Я использую Visual Studio 2013
Большое спасибо и извините за мой английский

2 Ответов

Рейтинг:
14

Rosa V.G

решение:

If DataGridView1.RowCount = 0 Then
            MessageBox.Show("the datagridview is emptly")
        Else
            If Directory.Exists("C:\Foldertxt") = False Then 
                Directory.CreateDirectory("C:\Foldertxt")
            End If
            Dim sFile As String = "C:\Foldertxt\file.txt"
           

Dim count As Integer = 1


Dim fileNameOnly As String = Path.GetFileNameWithoutExtension(sFile)
Dim extension As String = Path.GetExtension(sFile)
Dim path__1 As String = Path.GetDirectoryName(sFile)
Dim newFullPath As String = sFile


While File.Exists(newFullPath)
Dim tempFileName As String = String.Format("{0}({1})", fileNameOnly, System.Math.Max(System.Threading.Interlocked.Increment(count),count - 1))
newFullPath = Path.Combine(path__1, tempFileName & extension)
End While


            Using f As New IO.StreamWriter(newFullPath, True)

               
                Dim col As String = ""
               
                Dim row As String = ""
                Dim i As Integer = 0
                For Each r As DataGridViewRow In DataGridView1.Rows
                    For Each c As DataGridViewColumn In DataGridView1.Columns
                        row = row & "'" & Convert.ToString(r.Cells(c.HeaderText).Value) & "' "
                    Next
                    If i < DataGridView1.Rows.Count - 1 Then row &= Environment.NewLine
                Next

               
                f.WriteLine(row)
                MessageBox.Show("file created")
            End Using
        End If


Все равно спасибо!!!


Рейтинг:
1

clwprogrammer

получите количество файлов в каталоге, в который вы сохраняете. добавьте 1 к этому числу, а затем присоедините это новое число к концу имени файла.