Поиск и добавление записей в Excel - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток) стоит такая задача: На форме есть кнопка и текстовое поле. В текстовое поле вводиться значение. Есть документ Excel c листом1 формата: столбец А Столбец B консервы 6 бананы 8 молоко 2 Необходимо при нажатии на кнопку произвести поиск этого значения по столбцу А листа 1. Если такого значения нет, то вписать его в конец списка и в столбец B проставить 1, а если еть то в столбец b прибавить 1 например, в текстовое поле введено : кефир программа не нашла его в списке и в конец списка добавляет: столбец А Столбец B кефир 1 или же в текстовое поле введено бананы, программа приплюсовывет 1 напротив бананов, то есть их будет 9 Заранее спасибо за понимание и помощь!

Решение задачи: «Поиск и добавление записей в Excel»

textual
Листинг программы
  1. Public Class Form1
  2.     Dim DT As DataTable
  3.     Dim APP, WB, WS As Object
  4.     Dim FPath As String = Application.StartupPath & "\Book1.xls"
  5.     Private Sub btnLoad_Click(sender As Object, e As EventArgs) Handles btnLoad.Click
  6.         getDT(FPath, "Sheet1")
  7.         DGV1.DataSource = DT
  8.     End Sub
  9.  
  10.     Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
  11.         For i = 0 To DT.Rows.Count - 1
  12.             If DT.Rows(i)(0) = CB1.Text Then
  13.                 DT.Rows(i)(1) = TB1.Text
  14.                 DGV1.DataSource = DT
  15.                 Exit Sub
  16.             End If
  17.         Next
  18.         DT.Rows.Add(CB1.Text, TB1.Text)
  19.         DGV1.DataSource = DT
  20.         CB1.Items.Clear()
  21.         CB1.Items.AddRange((From Row In DT.Rows Select Row(0)).ToArray)
  22.     End Sub
  23.  
  24.     Private Sub CB1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CB1.SelectedIndexChanged
  25.         For Each row As DataRow In DT.Rows
  26.             If row(0) = CB1.Text Then
  27.                 TB1.Text = row(1)
  28.             End If
  29.         Next
  30.     End Sub
  31.  
  32.  
  33.     Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
  34.         saveDT(FPath, "Sheet1")
  35.     End Sub
  36.  
  37.     Private Sub DGV1_SelectionChanged(sender As Object, e As EventArgs) Handles DGV1.SelectionChanged
  38.         CB1.SelectedItem = DGV1.CurrentRow.Cells(0).Value
  39.         TB1.Text = DGV1.CurrentRow.Cells(1).Value
  40.     End Sub
  41.  
  42.  
  43.  
  44.  
  45.     Sub getDT(FilePath As String, WorksheetName As String)
  46.         DT = New DataTable
  47.  
  48.         APP = CreateObject("Excel.Application")
  49.         WB = APP.Workbooks.Open(FilePath)
  50.         WS = WB.Worksheets(WorksheetName)
  51.  
  52.         APP.Visible = False
  53.         APP.ScreenUpdating = False
  54.         APP.DisplayAlerts = False
  55.  
  56.         Dim LastRowIndex = WS.Cells(WS.Rows.Count, 1).End(-4162).Row
  57.         With DT
  58.             .Columns.Add("Name")
  59.             .Columns.Add("Quantity")
  60.             For i = 1 To LastRowIndex
  61.                 .Rows.Add(WS.Range("A" & i).Value, WS.Range("B" & i).Value)
  62.             Next
  63.         End With
  64.  
  65.         APP.Quit() : releaseObject(APP)
  66.         CB1.Items.AddRange((From Row In DT.Rows Select Row(0)).ToArray)
  67.         CB1.SelectedIndex = 0
  68.     End Sub
  69.  
  70.  
  71.     Sub saveDT(FilePath As String, WorksheetName As String)
  72.         APP = CreateObject("Excel.Application")
  73.         WB = APP.Workbooks.Open(FilePath)
  74.         WS = WB.Worksheets(WorksheetName)
  75.  
  76.         APP.Visible = False
  77.         APP.ScreenUpdating = False
  78.         APP.DisplayAlerts = False
  79.  
  80.         For i = 0 To DT.Rows.Count - 1
  81.             WS.Range("A" & i + 1).Value = DT.Rows(i)(0)
  82.             WS.Range("B" & i + 1).Value = DT.Rows(i)(1)
  83.         Next
  84.  
  85.         WB.close(True) : APP.Quit() : releaseObject(APP)
  86.         MsgBox("готово")
  87.     End Sub
  88.  
  89.     Public Sub releaseObject(ByVal obj As Object)
  90.         Try
  91.             System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
  92.             obj = Nothing
  93.         Catch ex As Exception
  94.             obj = Nothing
  95.         Finally
  96.             GC.Collect()
  97.         End Try
  98.     End Sub
  99.  
  100.  
  101. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут