Сохранить изменения из 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д