Сохранить изменения из DataGridView в Excel - Visual Basic .NET
Формулировка задачи:
Есть datagrid,туда выводится файл excel, как сделать так чтобы при изменении значения клетки в datagrid изменения сохранялись в тот же файл?
Код формы с датагрид:
Public dt As New DataTable
Public tab(30, 1) As Decimal
Public aaa As Integer
Private Sub ИсходныеДанные_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
aaa = 7
Dim bbb1 = Главная.bbb
Dim j As Integer = 0
Dim a1, b1 As Decimal
Dim EA As Object 'EA - Excel Application (Excel-Приложение)
EA = CreateObject("Excel.Application")
Dim sPath As String = Application.StartupPath 'Открыть Excel
Dim sFile As String = sPath + "\t.xlsx" 'Полный путь к файлу
Dim r = dt.NewRow()
'_________________________
EA.SheetsInNewWorkbook = 1
EA.Workbooks.Add(sFile)
'EA.Visible = True
'_____________________Добавление данных в DataGrid
dt.Columns.Add("Показатели")
dt.Columns.Add("Усл. обозначения")
dt.Columns.Add("Единицы измерения")
dt.Columns.Add("Базовый вариант")
dt.Columns.Add("Проектируемый вариант")
r("Показатели") = EA.Range("A3").Value
r("Усл. обозначения") = EA.Range("B3").Value
r("Единицы измерения") = EA.Range("C3").Value
r("Базовый вариант") = EA.Range("D3").Value
r("Проектируемый вариант") = EA.Range("E3").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A4").Value
r("Усл. обозначения") = EA.Range("B4").Value
r("Единицы измерения") = EA.Range("C4").Value
r("Базовый вариант") = EA.Range("D4").Value
r("Проектируемый вариант") = EA.Range("E4").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A5").Value
r("Усл. обозначения") = EA.Range("B5").Value
r("Единицы измерения") = EA.Range("C5").Value
r("Базовый вариант") = EA.Range("D5").Value
r("Проектируемый вариант") = EA.Range("E5").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A6").Value
r("Усл. обозначения") = EA.Range("B6").Value
r("Единицы измерения") = EA.Range("C6").Value
r("Базовый вариант") = EA.Range("D6").Value
r("Проектируемый вариант") = EA.Range("E6").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A7").Value
r("Усл. обозначения") = EA.Range("B7").Value
r("Единицы измерения") = EA.Range("C7").Value
r("Базовый вариант") = EA.Range("D7").Value
r("Проектируемый вариант") = EA.Range("E7").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A8").Value
r("Усл. обозначения") = EA.Range("B8").Value
r("Единицы измерения") = EA.Range("C8").Value
r("Базовый вариант") = EA.Range("D8").Value
r("Проектируемый вариант") = EA.Range("E8").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A9").Value
r("Усл. обозначения") = EA.Range("B9").Value
r("Единицы измерения") = EA.Range("C9").Value
r("Базовый вариант") = EA.Range("D9").Value
r("Проектируемый вариант") = EA.Range("E9").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A10").Value
r("Усл. обозначения") = EA.Range("B10").Value
r("Единицы измерения") = EA.Range("C10").Value
r("Базовый вариант") = EA.Range("D10").Value
r("Проектируемый вариант") = EA.Range("E10").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A11").Value
r("Усл. обозначения") = EA.Range("B11").Value
r("Единицы измерения") = EA.Range("C11").Value
r("Базовый вариант") = EA.Range("D11").Value
r("Проектируемый вариант") = EA.Range("E11").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A12").Value
r("Усл. обозначения") = EA.Range("B12").Value
r("Единицы измерения") = EA.Range("C12").Value
r("Базовый вариант") = EA.Range("D12").Value
r("Проектируемый вариант") = EA.Range("E12").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A13").Value
r("Усл. обозначения") = EA.Range("B13").Value
r("Единицы измерения") = EA.Range("C13").Value
r("Базовый вариант") = EA.Range("D13").Value
r("Проектируемый вариант") = EA.Range("E13").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A14").Value
r("Усл. обозначения") = EA.Range("B14").Value
r("Единицы измерения") = EA.Range("C14").Value
r("Базовый вариант") = EA.Range("D14").Value
r("Проектируемый вариант") = EA.Range("E14").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A15").Value
r("Усл. обозначения") = EA.Range("B15").Value
r("Единицы измерения") = EA.Range("C15").Value
r("Базовый вариант") = EA.Range("D15").Value
r("Проектируемый вариант") = EA.Range("E15").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A16").Value
r("Усл. обозначения") = EA.Range("B16").Value
r("Единицы измерения") = EA.Range("C16").Value
r("Базовый вариант") = EA.Range("D16").Value
r("Проектируемый вариант") = EA.Range("E16").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A17").Value
r("Усл. обозначения") = EA.Range("B17").Value
r("Единицы измерения") = EA.Range("C17").Value
r("Базовый вариант") = EA.Range("D17").Value
r("Проектируемый вариант") = EA.Range("E17").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A18").Value
r("Усл. обозначения") = EA.Range("B18").Value
r("Единицы измерения") = EA.Range("C18").Value
r("Базовый вариант") = EA.Range("D18").Value
r("Проектируемый вариант") = EA.Range("E18").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A19").Value
r("Усл. обозначения") = EA.Range("B19").Value
r("Единицы измерения") = EA.Range("C19").Value
r("Базовый вариант") = EA.Range("D19").Value
r("Проектируемый вариант") = EA.Range("E19").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A20").Value
r("Усл. обозначения") = EA.Range("B20").Value
r("Единицы измерения") = EA.Range("C20").Value
r("Базовый вариант") = EA.Range("D20").Value
r("Проектируемый вариант") = EA.Range("E20").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A21").Value
r("Усл. обозначения") = EA.Range("B21").Value
r("Единицы измерения") = EA.Range("C21").Value
r("Базовый вариант") = EA.Range("D21").Value
r("Проектируемый вариант") = EA.Range("E21").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A22").Value
r("Усл. обозначения") = EA.Range("B22").Value
r("Единицы измерения") = EA.Range("C22").Value
r("Базовый вариант") = EA.Range("D22").Value
r("Проектируемый вариант") = EA.Range("E22").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A23").Value
r("Усл. обозначения") = EA.Range("B23").Value
r("Единицы измерения") = EA.Range("C23").Value
r("Базовый вариант") = EA.Range("D23").Value
r("Проектируемый вариант") = EA.Range("E23").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A24").Value
r("Усл. обозначения") = EA.Range("B24").Value
r("Единицы измерения") = EA.Range("C24").Value
r("Базовый вариант") = EA.Range("D24").Value
r("Проектируемый вариант") = EA.Range("E24").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A25").Value
r("Усл. обозначения") = EA.Range("B25").Value
r("Единицы измерения") = EA.Range("C25").Value
r("Базовый вариант") = EA.Range("D25").Value
r("Проектируемый вариант") = EA.Range("E25").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A26").Value
r("Усл. обозначения") = EA.Range("B26").Value
r("Единицы измерения") = EA.Range("C26").Value
r("Базовый вариант") = EA.Range("D26").Value
r("Проектируемый вариант") = EA.Range("E26").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A27").Value
r("Усл. обозначения") = EA.Range("B27").Value
r("Единицы измерения") = EA.Range("C27").Value
r("Базовый вариант") = EA.Range("D27").Value
r("Проектируемый вариант") = EA.Range("E27").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A28").Value
r("Усл. обозначения") = EA.Range("B28").Value
r("Единицы измерения") = EA.Range("C28").Value
r("Базовый вариант") = EA.Range("D28").Value
r("Проектируемый вариант") = EA.Range("E28").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A29").Value
r("Усл. обозначения") = EA.Range("B29").Value
r("Единицы измерения") = EA.Range("C29").Value
r("Базовый вариант") = EA.Range("D29").Value
r("Проектируемый вариант") = EA.Range("E29").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = "Количество выходных дней и праздничных в плановом периоде"
r("Усл. обозначения") = EA.Range("B30").Value
r("Единицы измерения") = EA.Range("C30").Value
r("Базовый вариант") = EA.Range("D30").Value
r("Проектируемый вариант") = EA.Range("E30").Value
dt.Rows.Add(r)
r = dt.NewRow()
j = j + 1
r("Показатели") = EA.Range("A31").Value
r("Усл. обозначения") = EA.Range("B31").Value
r("Единицы измерения") = EA.Range("C31").Value
r("Базовый вариант") = EA.Range("D31").Value
r("Проектируемый вариант") = EA.Range("E31").Value
dt.Rows.Add(r)
DataGridView1.DataSource = dt
For i As Integer = 0 To 28
a1 = CDec(dt.Rows.Item(i).Item(3))
b1 = CDec(dt.Rows.Item(i).Item(4))
tab(i, 0) = a1
tab(i, 1) = b1
'tab(i, 0) = CDec(dt.Rows.Item(i).Item(3))
'tab(i, 1) = CDec(dt.Rows.Item(i).Item(4))
Next i
Главная.t = CDec(tab(0, 1))
Главная.zppr = CDec(tab(1, 1))
Главная.N = CDec(tab(3, 1))
Главная.a = CDec(tab(8, 1))
Главная.b = CDec(tab(24, 1))
Главная.k = CDec(tab(13, 1))
Главная.Bp2 = CDec(tab(12, 1))
Главная.Chr1 = CDec(tab(16, 1))
Главная.Chr2 = CDec(tab(17, 1))
Главная.Kb = CDec(tab(25, 1))
Главная.B1 = CDec(tab(10, 1))
Главная.Ch1 = CDec(tab(18, 1))
Главная.Dk = CDec(tab(26, 1))
Главная.Dvp = CDec(tab(27, 1))
Главная.P = CDec(tab(28, 1))
Главная.O1 = CDec(tab(4, 0))
Главная.D1 = CDec(tab(5, 0))
Главная.ChResh1 = CDec(tab(7, 0))
Главная.O2 = CDec(tab(4, 1))
Главная.D2 = CDec(tab(5, 1))
Главная.ChResh2 = CDec(tab(7, 1))
Главная.k = CDec(tab(6, 0))
End SubРешение задачи: «Сохранить изменения из DataGridView в Excel»
textual
Листинг программы
Private EA As Object
Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
EA = CreateObject("Excel.Application")
Dim sFile As String = Path.Combine(Application.StartupPath, "t.xls")
EA.Workbooks.open(sFile)
Dim sh As Object = EA.activesheet
DataGridView1.ColumnCount = 5
For i = 3 To 31
DataGridView1.Rows.Add(sh.cells(i, 1).value, sh.cells(i, 2).value) , sh.cells(i, 3).value, sh.cells(i, 4).value, sh.cells(i, 5).value)
Next
End Sub