СЦЕНАРИЙ
Я использую Telerik UI для форм Windows.
У меня есть RadGridView, на котором я представляю настраиваемый тип с именем MarketInfo
:
Public NotInheritable Class MarketInfo
...
Public ReadOnly Property Participants As ReadOnlyCollection(Of ParticipantInfo)
Get
Return Me.GetParticipants()
End Get
End Property
...
End Class
Он просто содержит свойства text и booleans и свойство Participants
, которое возвращает коллекцию другого настраиваемого типа:
Private Function GetParticipants(ByVal market As XElement) As ReadOnlyCollection(Of ParticipantInfo)
Dim participantInfoList As New List(Of ParticipantInfo)
For Each participantNode As XElement In market...<participant>
participantInfoList.Add(New ParticipantInfo(participantNode))
Next
Return New ReadOnlyCollection(Of ParticipantInfo)(participantInfoList)
End Function
И это полный класс ParticipantInfo
:
Public NotInheritable Class ParticipantInfo
Private ReadOnly participantElement As XElement
Public ReadOnly Property Name As String
Get
Return [email protected]
End Get
End Property
Public ReadOnly Property Id As String
Get
Return [email protected]
End Get
End Property
Public ReadOnly Property Odds As String
Get
Return [email protected]
End Get
End Property
Public ReadOnly Property OddsDecimal As String
Get
Return [email protected]
End Get
End Property
Public ReadOnly Property LastUpdateDate As String
Get
Return [email protected]
End Get
End Property
Public ReadOnly Property LastUpdateTime As String
Get
Return [email protected]
End Get
End Property
Public ReadOnly Property Handicap As String
Get
Return [email protected]
End Get
End Property
Public Sub New(ByVal participantElement As XElement)
Me.participantElement = participantElement
End Sub
Private Sub New()
End Sub
End Class
Поэтому в основном мне нужно экспортировать коллекцию типа ParticipantInfo
, которая должна быть представлена в Excel.
Ну, так что в RadGridView
я скрываю столбец Participants
, потому что он не может его представлять (потому что это коллекция), тогда я загружаю эту коллекцию в качестве источника данных на другой RadGridView
.
Чтобы понять это лучше, это результат:
Проблема
Моя проблема в том, что я не знаю, как интерпретировать это в файле excel (XLSX).
Это код, когда я пытаюсь экспортировать содержимое сетки MarketInfo
:
Dim exporter As New ExportToExcelML(rdg)
With exporter
.HiddenColumnOption = HiddenOption.ExportAlways
.HiddenRowOption = HiddenOption.ExportAlways
.ExportVisualSettings = True
.SheetMaxRows = ExcelMaxRows._65536
.SheetName = "xxxxxxxx"
.SummariesExportOption = SummariesOption.ExportAll
.PagingExportOption = PagingExportOption.AllPages
.FileExtension = ".xlsx"
.RadGridViewToExport = rdg
.ChildViewExportMode = ChildViewExportMode.ExportAllViews
End With
exporter.RunExport(fileName)
Однако созданный файл просто содержит имя типа участников:
...
<Data ss:Type="String">System.Collections.ObjectModel.ReadOnlyCollection`1[WilliamHillLeecher.Leecher.Types.ParticipantInfo]</Data></Cell></Row>
...
Я ожидал увидеть одну страницу Excel, созданную за каждый MarketInfo
с этими отсутствующими свойствами.
Я не знаком с использованием Excel и терминологией Excel, я не уверен, как обычно можно представлять коллекцию на странице листа, я полагаю, создавая новую страницу листа и "привязывая" ее к соответствующей ячейке.
Я просто хотел бы представить ту же самую информацию в файле Excel, который я представляю в своем приложении.
Вопрос
Как я мог сделать это с помощью Telerik экспорта связанных библиотек?
Если это возможно, не используя Telerik libs, то как я могу это сделать с другой сторонней бесплатной библиотекой?.
(с этим я просто говорю, что я открыт для других предложений, однако имейте в виду, что я знаю более сосредоточенные библиотеки Excel, но в любом случае я все равно не пойму, как сделать это с любым lib... возможно, из-за непонимания того, как можно сделать одну и ту же задачу добавления/представления коллекции только с помощью интерфейса Excel.)