Wpf 在excel工作表中显示listview项
我正在显示来自WPF应用程序的excel中SQL搜索结果。它最初在列表视图中显示它们,用户可以选择导出到excel的选项,该选项工作正常 我的错误是,如果SQL结果中有5个结果显示在listview中,当我导出到excel时,它只显示4个结果加上SQL表标题Wpf 在excel工作表中显示listview项,wpf,excel,vba,listview,for-loop,Wpf,Excel,Vba,Listview,For Loop,我正在显示来自WPF应用程序的excel中SQL搜索结果。它最初在列表视图中显示它们,用户可以选择导出到excel的选项,该选项工作正常 我的错误是,如果SQL结果中有5个结果显示在listview中,当我导出到excel时,它只显示4个结果加上SQL表标题 For i As Integer = 1 To dtMainSQLData.Rows.Count For j As Integer = 1 To dtMainSQLData.Columns.Count
For i As Integer = 1 To dtMainSQLData.Rows.Count
For j As Integer = 1 To dtMainSQLData.Columns.Count
If i = 1 Then
sheet.Cells(i, j) = dcCollection(j - 1).ToString()
Else
sheet.Cells(i, j) = dtMainSQLData.Rows(i - 1)(j - 1).ToString()
End If
Next
Next
是否有人发现将SQL结果打印到excel的about循环有问题这是您的问题:
For i As Integer = 1 To dtMainSQLData.Rows.Count
如果在访问项目时跳过第一个,并将其减少1,则必须转到dtMainSQLData.Rows.Count+1
就我个人而言,我会从0开始,如下所示:
For i As Integer = 0 To dtMainSQLData.Rows.Count
For j As Integer = 0 To dtMainSQLData.Columns.Count
If i = 0 Then
sheet.Cells(i + 1, j + 1) = dcCollection(j).ToString()
Else
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Rows(i)(j).ToString()
End If
Next
Next
在调试csharpwinphonexaml的答案后,我让它工作了。我必须添加一个额外的IF来检查它是否位于最后一个位置
For i As Integer = 0 To dtMainSQLData.Rows.Count
For j As Integer = 0 To dtMainSQLData.Columns.Count - 1
If i = 0 Then
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Columns(j).ToString()
ElseIf i = dtMainSQLData.Rows.Count Then
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Rows(0)(j).ToString()
Else
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Rows(i)(j).ToString()
End If
Next
Next
获取错误消息说现在找不到第19列,知道吗?猜测它是因为它已到达最后一列(18)并添加1导致找不到19?异常发生在哪里?如果i=0,则。。。当它到达最后一列时,错误是thrown有19列,因此请放置一个断点并检查dtMainSQLData.columns.Count的值。您可能有20列,但最后一列是null或空的,我不知道。