使用 EPPlus 错误属性将 DataGridView 导出到 Excel 中'item' 'read only'



我想问关于使用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

经过这些修改后,代码按预期工作。

相关内容

  • 没有找到相关文章

最新更新