У меня возникли проблемы с экспортом моих данных в excel. мое приложение использует ArrayList() для размещения данных. Я не совсем понимаю арраистов. Внутри моего массива ArrayList() есть MyDataClass, затем Val1, Val2 и т. Д. Массив имеет 7 столбцов и может иметь от 1 до 300 строк данных. Когда я это делаю, я не могу спускаться к данным Val1, мой листок excel в ячейке A1 говорит, MyDataClass. Может кто-то, пожалуйста, помогите мне с этим, спасибо заранее. Я на Visual Studio 2010 и Office 2010.Нужно получить ArrayList() для экспорта в Excel
Protected Sub btnExport_Click_Backup(sender As Object, e As System.EventArgs) Handles btnExport.Click
Dim ItemList As New ArrayList()
ItemList = Session("sessItemList2")
ItemList.Reverse()
Dim dt As New System.Data.DataTable()
dt.Columns.Add("SerlNmbr")
dt.Columns.Add("ItemNmbr")
dt.Columns.Add("LocnCode")
dt.Columns.Add("Status")
dt.Columns.Add("MSL")
dt.Columns.Add("InvoiceNumber")
dt.Columns.Add("ActivationStatus")
'Это где я делаю что-то неправильно ...
For i As Integer = 0 To ItemList.Count - 1
Dim dr As DataRow
dr = dt.NewRow
dr.Item(0) = ItemList(0).Val1.ToString
dt.Rows.Add(dr)
Next
Try
Dim oExcel As Interop.Excel.Application
Dim oBook As Workbook
Dim oSheet As Worksheet
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add(Type.Missing)
oSheet = oBook.Worksheets(1)
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
Dim dc As System.Data.DataColumn
Dim dr As System.Data.DataRow
Dim colIndex As Integer = 0
Dim rowIndex As Integer = 0
'Export the Columns to excel file
For Each dc In dt.Columns
colIndex = colIndex + 1
oSheet.Cells(1, colIndex) = dc.ColumnName
Next
'Export the rows to excel file
For Each dr In dt.Rows
rowIndex = rowIndex + 1
colIndex = 0
For Each dc In dt.Columns
colIndex = colIndex + 1
oSheet.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
Next
Next
'Set final path
Dim fileName As String = "c:\temp\ExportedFile" + ".xls"
Dim finalPath = fileName
oSheet.Columns.AutoFit()
'Save file in final path
oBook.SaveAs(finalPath, XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)
'Release the objects
ReleaseObject(oSheet)
oBook.Close(False, Type.Missing, Type.Missing)
ReleaseObject(oBook)
oExcel.Quit()
ReleaseObject(oExcel)
'Some time Office application does not quit after automation: so i am calling GC.Collect method.
GC.Collect()
' Open the file for the user
Dim oxcel As Interop.Excel.Application
Dim owb As Workbook
Dim osht As Worksheet
Dim ocell As Range
oxcel = New Interop.Excel.Application
oxcel.Visible = True
' my cpu errors out here becz my Office is not registered, you can go to excel & remove Registration Msgbox then press continue
owb = oxcel.Workbooks.Open(finalPath)
osht = owb.Worksheets(1)
ocell = osht.Range("A1")
Catch ex As Exception
' MessageBox.Show(ex.Message, "Warning", MessageBoxButtons.OK)
' Need an error
End Try
End Sub
' вот небольшая часть MyDataClass
Общественности Класс MyDataClass
Public Sub New(ByVal v1 As String, ByVal v2 As String, ByVal v3 As String, ByVal v4 As String, Optional ByVal v5 As String = "", Optional ByVal v6 As String = "", Optional ByVal v7 As String = "", Optional ByVal v8 As String = "")
Val1 = v1
Val2 = v2
Val3 = v3
Val4 = v4
Val5 = v5
Val6 = v6
Val7 = v7
Val8 = v8
End Sub
Public Property Val1() As String
Get
Return _Val1
End Get
Set(ByVal value As String)
_Val1 = value
End Set
End Property
и т.д ...
Public _Val1 As String
Public _Val2 As String
Public _Val3 As String
Public _Val4 As String
Public _Val5 As String
Public _Val6 As String
Public _Val7 As String
Public _Val8 As String
End Class
'здесь, где MyDataClass создан ранее в программе. данные Dim As MyDataClass = Новый MyDataClass (strEsn, strItemId, strLocnCode, strStatus, strMSL, strInvoiceNumber, strActivationStatus) 'Тогда его позже добавил здесь: ItemList.Add (данные) –
Я добавил код для MyDataClass в то верхняя часть веб-страницы –
Я пробовал вашу строку кода и получаю эту ошибку для: dr.Item (0) = Cast (ItemList (0), «MyDataClass»). Val1.ToString. - Слишком мало аргументов типа для Systems.Activities.Expressions –