Не удалось получить тип столбца
Я пытаюсь перебрать следующий код, чтобы найти столбцы DateTime. Я не могу заставить код работать. Я что-то пропустил? Благодарю.
dGrid.DataSource = dSets.Tables(0)
dGrid.DataBind()
ws.Cells(1, 1).LoadFromDataTable(dGrid.DataSource, True)
For i As Byte = 1 To dGrid.Columns.Count
If dSets.Tables(0).Columns(i).DataType Is GetType(DateTime) Then
ws.Column(i).Style.Numberformat.Format = "mm/dd/yyyy hh:mm"
End If
Next
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition"; attachment)
Response.Charset = ""
2 ответа
Решение
Почти нет, но нужны следующие изменения:
- Получить количество столбцов от
DataSource
, - Исправить индексацию коллекции.
Проверено и работает:
dataGrid.DataSource = dataSet.Tables(0)
dataGrid.DataBind()
ws.Cells(1, 1).LoadFromDataTable(dataGrid.DataSource, True)
Dim data = dataGrid.DataSource
' get column count from DataSource: dGrid.Columns.Count is 0
Dim columnCount = data.Columns.Count
For i = 0 To columnCount - 1
If data.Columns(i).DataType Is GetType(DateTime) Then
ws.Column(i + 1).Style.Numberformat.Format = "mm/dd/yyyy hh:mm"
End If
Next
Пытаться
For i As Byte = 1 To dGrid.Columns.Count
If dt.Columns[i].DataType Is GetType(DateTime) Then
ws.Column(i).Style.Numberformat.Format = "mm/dd/yyyy hh:mm"
End If
Next