Excel Interop 工作表 HRESULT:0x800A03EC 使用 VB.net
Excel Interop worksheet HRESULT: 0x800A03EC using VB.net
所以在我的 vb.net 应用程序中,我从数据库中提取数据(table 中大约 1046 行)以预加载 excel 电子表格中的内容。这在 999 行之前工作正常,但如果它超过 999 行,它会给我那个特定的错误。
只是想知道是否有限制。有任何想法吗?我正在使用 windows 10,Management Studio 2012 和 excel 2007。
代码:
Private Sub readEmployee(ByVal employee As data.employeeList)
Dim excelWorkSheet As Excel.Worksheet
Dim startRow As Integer = 9
Dim firstNames As String = ""
Dim lastNames As String = ""
With excelWorkSheet
startRow = 9
Dim row As data.employeeList.employeeListRow
For Each row In employee.employeeList
If row.RowState <> DataRowState.Deleted Then
firstNames = CStr(IIf(row.FirstName.Trim() = "", "", row.FirstName.Trim()))
lastNames = CStr(IIf(row.LastName.Trim() = "", "", row.LastName.Trim()))
.Range("A" + startRow.ToString("n0")).Value = lastNames
.Range("B" + startRow.ToString("n0")).Value = firstNames
startRow += 1
End If
Next
End With
End Sub
当 startRow=1000 时,
startRow.ToString("n0")
returns 1,000。 Range
参数的格式不正确。
您不需要在这里使用 FormatProvider
代替 ToString
。只需使用默认重载。
startRow.ToString()
就是你所需要的。
所以在我的 vb.net 应用程序中,我从数据库中提取数据(table 中大约 1046 行)以预加载 excel 电子表格中的内容。这在 999 行之前工作正常,但如果它超过 999 行,它会给我那个特定的错误。 只是想知道是否有限制。有任何想法吗?我正在使用 windows 10,Management Studio 2012 和 excel 2007。
代码:
Private Sub readEmployee(ByVal employee As data.employeeList)
Dim excelWorkSheet As Excel.Worksheet
Dim startRow As Integer = 9
Dim firstNames As String = ""
Dim lastNames As String = ""
With excelWorkSheet
startRow = 9
Dim row As data.employeeList.employeeListRow
For Each row In employee.employeeList
If row.RowState <> DataRowState.Deleted Then
firstNames = CStr(IIf(row.FirstName.Trim() = "", "", row.FirstName.Trim()))
lastNames = CStr(IIf(row.LastName.Trim() = "", "", row.LastName.Trim()))
.Range("A" + startRow.ToString("n0")).Value = lastNames
.Range("B" + startRow.ToString("n0")).Value = firstNames
startRow += 1
End If
Next
End With
End Sub
当 startRow=1000 时,
startRow.ToString("n0")
returns 1,000。 Range
参数的格式不正确。
您不需要在这里使用 FormatProvider
代替 ToString
。只需使用默认重载。
startRow.ToString()
就是你所需要的。