我想问关于使用EPPlus VB.NET导出datagridview到excel。
我使用microsoft.interop在此之前导出datagridview到excel和它的工作几个月后,我不能使用microsoft.interop,因为它不断检索COM错误突然,所以我改变我的代码,并开始使用EPPlus像其他人。
但我不能导出整个datagridview到excel中,因为一个错误告诉我属性'item'是'只读'和类型'String'的值不能转换为'ExcelRange'
With worksheetData
For Each column As DataGridViewColumn In DataGridView1.Columns
.Cells(1, column.Index + 1) = column.HeaderText
Next
For i = 1 To Me.DataGridView1.RowCount
.Cells(i + 1, 1) = Me.DataGridView1.Rows(i - 1).Cells("EENo").Value
For j = 1 To DataGridView1.Columns.Count - 1
.Cells(i + 1, j + 1) = DataGridView1.Rows(i - 1).Cells(j).Value
Next
Next
End With
这是我的编码,我试图导出整个datagridview到excel。
错误在第3、6、8行。
我不知道这是关于我的编码还是关于设计部分的属性。
请帮帮我,谢谢。
我的理解是EPPLus是免费的非商业用途。
你得到的问题和错误是因为代码没有完全符合"什么"它想要放在Excel单元格中。当你使用代码…
.Cells(i + 1, j + 1) = DataGridView1.Rows(i - 1).Cells(j).Value
等号左侧为" Excel Cell "…
.Cells(i + 1, j + 1) = …
和添加一个"值"到它…你需要添加.Value
属性。像. .
.Cells(1, column.Index + 1).Value = column.HeaderText
和
.Cells(i + 1, j + 1).Value = DataGridView1.Rows(i - 1).Cells(j).Value
经过这些修改后,代码按预期工作。