Сохранить изменения из DataGridView в Excel - Visual Basic .NET

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

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

Есть datagrid,туда выводится файл excel, как сделать так чтобы при изменении значения клетки в datagrid изменения сохранялись в тот же файл?
Код формы с датагрид:
Листинг программы
  1. Public dt As New DataTable
  2. Public tab(30, 1) As Decimal
  3. Public aaa As Integer
  4. Private Sub ИсходныеДанные_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5. aaa = 7
  6. Dim bbb1 = Главная.bbb
  7. Dim j As Integer = 0
  8. Dim a1, b1 As Decimal
  9. Dim EA As Object 'EA - Excel Application (Excel-Приложение)
  10. EA = CreateObject("Excel.Application")
  11. Dim sPath As String = Application.StartupPath 'Открыть Excel
  12. Dim sFile As String = sPath + "\t.xlsx" 'Полный путь к файлу
  13. Dim r = dt.NewRow()
  14. '_________________________
  15. EA.SheetsInNewWorkbook = 1
  16. EA.Workbooks.Add(sFile)
  17. 'EA.Visible = True
  18. '_____________________Добавление данных в DataGrid
  19. dt.Columns.Add("Показатели")
  20. dt.Columns.Add("Усл. обозначения")
  21. dt.Columns.Add("Единицы измерения")
  22. dt.Columns.Add("Базовый вариант")
  23. dt.Columns.Add("Проектируемый вариант")
  24. r("Показатели") = EA.Range("A3").Value
  25. r("Усл. обозначения") = EA.Range("B3").Value
  26. r("Единицы измерения") = EA.Range("C3").Value
  27. r("Базовый вариант") = EA.Range("D3").Value
  28. r("Проектируемый вариант") = EA.Range("E3").Value
  29. dt.Rows.Add(r)
  30. r = dt.NewRow()
  31. j = j + 1
  32. r("Показатели") = EA.Range("A4").Value
  33. r("Усл. обозначения") = EA.Range("B4").Value
  34. r("Единицы измерения") = EA.Range("C4").Value
  35. r("Базовый вариант") = EA.Range("D4").Value
  36. r("Проектируемый вариант") = EA.Range("E4").Value
  37. dt.Rows.Add(r)
  38. r = dt.NewRow()
  39. j = j + 1
  40. r("Показатели") = EA.Range("A5").Value
  41. r("Усл. обозначения") = EA.Range("B5").Value
  42. r("Единицы измерения") = EA.Range("C5").Value
  43. r("Базовый вариант") = EA.Range("D5").Value
  44. r("Проектируемый вариант") = EA.Range("E5").Value
  45. dt.Rows.Add(r)
  46. r = dt.NewRow()
  47. j = j + 1
  48. r("Показатели") = EA.Range("A6").Value
  49. r("Усл. обозначения") = EA.Range("B6").Value
  50. r("Единицы измерения") = EA.Range("C6").Value
  51. r("Базовый вариант") = EA.Range("D6").Value
  52. r("Проектируемый вариант") = EA.Range("E6").Value
  53. dt.Rows.Add(r)
  54. r = dt.NewRow()
  55. j = j + 1
  56. r("Показатели") = EA.Range("A7").Value
  57. r("Усл. обозначения") = EA.Range("B7").Value
  58. r("Единицы измерения") = EA.Range("C7").Value
  59. r("Базовый вариант") = EA.Range("D7").Value
  60. r("Проектируемый вариант") = EA.Range("E7").Value
  61. dt.Rows.Add(r)
  62. r = dt.NewRow()
  63. j = j + 1
  64. r("Показатели") = EA.Range("A8").Value
  65. r("Усл. обозначения") = EA.Range("B8").Value
  66. r("Единицы измерения") = EA.Range("C8").Value
  67. r("Базовый вариант") = EA.Range("D8").Value
  68. r("Проектируемый вариант") = EA.Range("E8").Value
  69. dt.Rows.Add(r)
  70. r = dt.NewRow()
  71. j = j + 1
  72. r("Показатели") = EA.Range("A9").Value
  73. r("Усл. обозначения") = EA.Range("B9").Value
  74. r("Единицы измерения") = EA.Range("C9").Value
  75. r("Базовый вариант") = EA.Range("D9").Value
  76. r("Проектируемый вариант") = EA.Range("E9").Value
  77. dt.Rows.Add(r)
  78. r = dt.NewRow()
  79. j = j + 1
  80. r("Показатели") = EA.Range("A10").Value
  81. r("Усл. обозначения") = EA.Range("B10").Value
  82. r("Единицы измерения") = EA.Range("C10").Value
  83. r("Базовый вариант") = EA.Range("D10").Value
  84. r("Проектируемый вариант") = EA.Range("E10").Value
  85. dt.Rows.Add(r)
  86. r = dt.NewRow()
  87. j = j + 1
  88. r("Показатели") = EA.Range("A11").Value
  89. r("Усл. обозначения") = EA.Range("B11").Value
  90. r("Единицы измерения") = EA.Range("C11").Value
  91. r("Базовый вариант") = EA.Range("D11").Value
  92. r("Проектируемый вариант") = EA.Range("E11").Value
  93. dt.Rows.Add(r)
  94. r = dt.NewRow()
  95. j = j + 1
  96. r("Показатели") = EA.Range("A12").Value
  97. r("Усл. обозначения") = EA.Range("B12").Value
  98. r("Единицы измерения") = EA.Range("C12").Value
  99. r("Базовый вариант") = EA.Range("D12").Value
  100. r("Проектируемый вариант") = EA.Range("E12").Value
  101. dt.Rows.Add(r)
  102. r = dt.NewRow()
  103. j = j + 1
  104. r("Показатели") = EA.Range("A13").Value
  105. r("Усл. обозначения") = EA.Range("B13").Value
  106. r("Единицы измерения") = EA.Range("C13").Value
  107. r("Базовый вариант") = EA.Range("D13").Value
  108. r("Проектируемый вариант") = EA.Range("E13").Value
  109. dt.Rows.Add(r)
  110. r = dt.NewRow()
  111. j = j + 1
  112. r("Показатели") = EA.Range("A14").Value
  113. r("Усл. обозначения") = EA.Range("B14").Value
  114. r("Единицы измерения") = EA.Range("C14").Value
  115. r("Базовый вариант") = EA.Range("D14").Value
  116. r("Проектируемый вариант") = EA.Range("E14").Value
  117. dt.Rows.Add(r)
  118. r = dt.NewRow()
  119. j = j + 1
  120. r("Показатели") = EA.Range("A15").Value
  121. r("Усл. обозначения") = EA.Range("B15").Value
  122. r("Единицы измерения") = EA.Range("C15").Value
  123. r("Базовый вариант") = EA.Range("D15").Value
  124. r("Проектируемый вариант") = EA.Range("E15").Value
  125. dt.Rows.Add(r)
  126. r = dt.NewRow()
  127. j = j + 1
  128. r("Показатели") = EA.Range("A16").Value
  129. r("Усл. обозначения") = EA.Range("B16").Value
  130. r("Единицы измерения") = EA.Range("C16").Value
  131. r("Базовый вариант") = EA.Range("D16").Value
  132. r("Проектируемый вариант") = EA.Range("E16").Value
  133. dt.Rows.Add(r)
  134. r = dt.NewRow()
  135. j = j + 1
  136. r("Показатели") = EA.Range("A17").Value
  137. r("Усл. обозначения") = EA.Range("B17").Value
  138. r("Единицы измерения") = EA.Range("C17").Value
  139. r("Базовый вариант") = EA.Range("D17").Value
  140. r("Проектируемый вариант") = EA.Range("E17").Value
  141. dt.Rows.Add(r)
  142. r = dt.NewRow()
  143. j = j + 1
  144. r("Показатели") = EA.Range("A18").Value
  145. r("Усл. обозначения") = EA.Range("B18").Value
  146. r("Единицы измерения") = EA.Range("C18").Value
  147. r("Базовый вариант") = EA.Range("D18").Value
  148. r("Проектируемый вариант") = EA.Range("E18").Value
  149. dt.Rows.Add(r)
  150. r = dt.NewRow()
  151. j = j + 1
  152. r("Показатели") = EA.Range("A19").Value
  153. r("Усл. обозначения") = EA.Range("B19").Value
  154. r("Единицы измерения") = EA.Range("C19").Value
  155. r("Базовый вариант") = EA.Range("D19").Value
  156. r("Проектируемый вариант") = EA.Range("E19").Value
  157. dt.Rows.Add(r)
  158. r = dt.NewRow()
  159. j = j + 1
  160. r("Показатели") = EA.Range("A20").Value
  161. r("Усл. обозначения") = EA.Range("B20").Value
  162. r("Единицы измерения") = EA.Range("C20").Value
  163. r("Базовый вариант") = EA.Range("D20").Value
  164. r("Проектируемый вариант") = EA.Range("E20").Value
  165. dt.Rows.Add(r)
  166. r = dt.NewRow()
  167. j = j + 1
  168. r("Показатели") = EA.Range("A21").Value
  169. r("Усл. обозначения") = EA.Range("B21").Value
  170. r("Единицы измерения") = EA.Range("C21").Value
  171. r("Базовый вариант") = EA.Range("D21").Value
  172. r("Проектируемый вариант") = EA.Range("E21").Value
  173. dt.Rows.Add(r)
  174. r = dt.NewRow()
  175. j = j + 1
  176. r("Показатели") = EA.Range("A22").Value
  177. r("Усл. обозначения") = EA.Range("B22").Value
  178. r("Единицы измерения") = EA.Range("C22").Value
  179. r("Базовый вариант") = EA.Range("D22").Value
  180. r("Проектируемый вариант") = EA.Range("E22").Value
  181. dt.Rows.Add(r)
  182. r = dt.NewRow()
  183. j = j + 1
  184. r("Показатели") = EA.Range("A23").Value
  185. r("Усл. обозначения") = EA.Range("B23").Value
  186. r("Единицы измерения") = EA.Range("C23").Value
  187. r("Базовый вариант") = EA.Range("D23").Value
  188. r("Проектируемый вариант") = EA.Range("E23").Value
  189. dt.Rows.Add(r)
  190. r = dt.NewRow()
  191. j = j + 1
  192. r("Показатели") = EA.Range("A24").Value
  193. r("Усл. обозначения") = EA.Range("B24").Value
  194. r("Единицы измерения") = EA.Range("C24").Value
  195. r("Базовый вариант") = EA.Range("D24").Value
  196. r("Проектируемый вариант") = EA.Range("E24").Value
  197. dt.Rows.Add(r)
  198. r = dt.NewRow()
  199. j = j + 1
  200. r("Показатели") = EA.Range("A25").Value
  201. r("Усл. обозначения") = EA.Range("B25").Value
  202. r("Единицы измерения") = EA.Range("C25").Value
  203. r("Базовый вариант") = EA.Range("D25").Value
  204. r("Проектируемый вариант") = EA.Range("E25").Value
  205. dt.Rows.Add(r)
  206. r = dt.NewRow()
  207. j = j + 1
  208. r("Показатели") = EA.Range("A26").Value
  209. r("Усл. обозначения") = EA.Range("B26").Value
  210. r("Единицы измерения") = EA.Range("C26").Value
  211. r("Базовый вариант") = EA.Range("D26").Value
  212. r("Проектируемый вариант") = EA.Range("E26").Value
  213. dt.Rows.Add(r)
  214. r = dt.NewRow()
  215. j = j + 1
  216. r("Показатели") = EA.Range("A27").Value
  217. r("Усл. обозначения") = EA.Range("B27").Value
  218. r("Единицы измерения") = EA.Range("C27").Value
  219. r("Базовый вариант") = EA.Range("D27").Value
  220. r("Проектируемый вариант") = EA.Range("E27").Value
  221. dt.Rows.Add(r)
  222. r = dt.NewRow()
  223. j = j + 1
  224. r("Показатели") = EA.Range("A28").Value
  225. r("Усл. обозначения") = EA.Range("B28").Value
  226. r("Единицы измерения") = EA.Range("C28").Value
  227. r("Базовый вариант") = EA.Range("D28").Value
  228. r("Проектируемый вариант") = EA.Range("E28").Value
  229. dt.Rows.Add(r)
  230. r = dt.NewRow()
  231. j = j + 1
  232. r("Показатели") = EA.Range("A29").Value
  233. r("Усл. обозначения") = EA.Range("B29").Value
  234. r("Единицы измерения") = EA.Range("C29").Value
  235. r("Базовый вариант") = EA.Range("D29").Value
  236. r("Проектируемый вариант") = EA.Range("E29").Value
  237. dt.Rows.Add(r)
  238. r = dt.NewRow()
  239. j = j + 1
  240. r("Показатели") = "Количество выходных дней и праздничных в плановом периоде"
  241. r("Усл. обозначения") = EA.Range("B30").Value
  242. r("Единицы измерения") = EA.Range("C30").Value
  243. r("Базовый вариант") = EA.Range("D30").Value
  244. r("Проектируемый вариант") = EA.Range("E30").Value
  245. dt.Rows.Add(r)
  246. r = dt.NewRow()
  247. j = j + 1
  248. r("Показатели") = EA.Range("A31").Value
  249. r("Усл. обозначения") = EA.Range("B31").Value
  250. r("Единицы измерения") = EA.Range("C31").Value
  251. r("Базовый вариант") = EA.Range("D31").Value
  252. r("Проектируемый вариант") = EA.Range("E31").Value
  253. dt.Rows.Add(r)
  254. DataGridView1.DataSource = dt
  255. For i As Integer = 0 To 28
  256. a1 = CDec(dt.Rows.Item(i).Item(3))
  257. b1 = CDec(dt.Rows.Item(i).Item(4))
  258. tab(i, 0) = a1
  259. tab(i, 1) = b1
  260. 'tab(i, 0) = CDec(dt.Rows.Item(i).Item(3))
  261. 'tab(i, 1) = CDec(dt.Rows.Item(i).Item(4))
  262. Next i
  263. Главная.t = CDec(tab(0, 1))
  264. Главная.zppr = CDec(tab(1, 1))
  265. Главная.N = CDec(tab(3, 1))
  266. Главная.a = CDec(tab(8, 1))
  267. Главная.b = CDec(tab(24, 1))
  268. Главная.k = CDec(tab(13, 1))
  269. Главная.Bp2 = CDec(tab(12, 1))
  270. Главная.Chr1 = CDec(tab(16, 1))
  271. Главная.Chr2 = CDec(tab(17, 1))
  272. Главная.Kb = CDec(tab(25, 1))
  273. Главная.B1 = CDec(tab(10, 1))
  274. Главная.Ch1 = CDec(tab(18, 1))
  275. Главная.Dk = CDec(tab(26, 1))
  276. Главная.Dvp = CDec(tab(27, 1))
  277. Главная.P = CDec(tab(28, 1))
  278. Главная.O1 = CDec(tab(4, 0))
  279. Главная.D1 = CDec(tab(5, 0))
  280. Главная.ChResh1 = CDec(tab(7, 0))
  281. Главная.O2 = CDec(tab(4, 1))
  282. Главная.D2 = CDec(tab(5, 1))
  283. Главная.ChResh2 = CDec(tab(7, 1))
  284. Главная.k = CDec(tab(6, 0))
  285. End Sub

Решение задачи: «Сохранить изменения из DataGridView в Excel»

textual
Листинг программы
  1. Private EA As Object
  2. Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
  3.     EA = CreateObject("Excel.Application")
  4.     Dim sFile As String = Path.Combine(Application.StartupPath, "t.xls")
  5.     EA.Workbooks.open(sFile)
  6.     Dim sh As Object = EA.activesheet
  7.     DataGridView1.ColumnCount = 5
  8.     For i = 3 To 31
  9.         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)
  10.     Next
  11. End Sub

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


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

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

11   голосов , оценка 3.636 из 5

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

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

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