Запись данных в Excel в первую свободную ячейку - Visual Basic .NET
Формулировка задачи:
Прошу помощи!!!
Я новичек, поэтому сильно не ругайте и не переводите тему типа "вон там посмотри". Хотелось бы увидеть конкретный код.
Задача: есть два поля textbox1 и textbox2, кнопка button1 "Записать". Необходимо при нажатии кнопки выполнить запись из textbox1 и textbox2 в таблицу excel (например файл 1.xlsx). Причем textbox1 в столбец "В", а textbox2 в столбец "С", но в свободную строку (не заполненную), например 1, 2, 3 строки заполнены, а 4 пустая - так вот в нее!
Надеюсь понятно изложил.
Пожалуйста!
Решение задачи: «Запись данных в Excel в первую свободную ячейку»
textual
Листинг программы
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'кнопка Найти Dim xlApp As New Excel.Application 'приложение Excel Dim xlWB As Excel.Workbook = Nothing 'книга Dim xlSht As Excel.Worksheet = Nothing 'лист Dim iFillFileName As String = String.Empty Dim Rng As Excel.Range 'найденная ячейка Const xlFormulas = -4123 'искать только в формулах Const xlwhole = 1 'искать "Ячейка целиком" Const xlPart = 2 'искать "часть ячейки" Dim TextToFind As String = String.Empty If Me.TextBox3.Text = "" Then MessageBox.Show("Вы не указали текст для поиска!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If TextToFind = Me.TextBox3.Text iFillFileName = "G:\VB.NET TEST\Book1.xlsx" 'путь к нашему Excel файлу If xlWB Is Nothing Then Try xlWB = xlApp.Workbooks.Open(iFillFileName) Catch ex As Exception MessageBox.Show("Не удалось открыть файл " & iFillFileName, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End Try Try xlSht = xlWB.Worksheets("Лист1") 'укажите имя листа Catch ex As Exception MessageBox.Show("Не удалось найти указанный лист в файле " & iFillFileName, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information) xlWB.Close(SaveChanges:=True) 'сохраняем файл и закрываем его xlApp.Quit() 'закрываем Excel Exit Sub End Try End If With xlSht Rng = .Columns("B").find(TextToFind, , xlFormulas, xlwhole) If Rng Is Nothing Then MessageBox.Show("В столбце В не удалось найти текст: " & TextToFind, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If Form2.TextBox1.Text = .Cells(Rng.Row, "A").value Form2.TextBox2.Text = .Cells(Rng.Row, "B").value Form2.TextBox3.Text = .Cells(Rng.Row, "C").value Form2.TextBox4.Text = .Cells(Rng.Row, "D").value Form2.TextBox5.Text = .Cells(Rng.Row, "E").value Form2.Show() End With xlWB.Close(SaveChanges:=True) 'сохраняем файл и закрываем его xlApp.Quit() 'закрываем Excel 'Закрытие Excel, чтобы он не весел в диспетчере задач Try System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) xlApp = Nothing Catch ex As Exception MsgBox(ex.Message) Finally GC.Collect() End Try End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д