Export DataTable to Excel with variable number of fields

Please support our VB.NET advertiser: $4.95 a Month - ASP.NET Web Hosting – Click Here!
Thread Solved
Reply

Join Date: Jun 2006
Posts: 45
Reputation: Oxiegen is an unknown quantity at this point 
Solved Threads: 3
Oxiegen Oxiegen is offline Offline
Light Poster

Export DataTable to Excel with variable number of fields

 
0
  #1
Dec 4th, 2007
Hi!
Sorry about my bad grammer and/or spelling. English is not my native language.

I don't know if this already have been asked and answered, however...

I'm currently developing a program in which it will be possible to select table fields from a database and set various criteria using dropdown-lists. This will then dynamically generate an SQL-query string.
I then convert the datareader I use for this query into a datatable.

The above part works great.

Now to the problem.
I have other functions that perform an export to excel, but those has fixed number of fields and it's then easy, for example, to use VALUES ('" & row.Item(0) & "','" & row.Item(2) & "','" & row.Item(3) & "'..... to retrieve and export the information.

But because this latest function has fields that varies in number, the above code won't exactly work.
I need a way to retrieve the information into a single string where:
str &= "'" & row.Item(<dynamic number 0 to field.count - 1>) & "'," .

And here's the crux. All this has to be performed inside a single For Each row AS DataRow In DataTable.Rows because the data is exported into excel row by row.

Any ideas?
Last edited by Oxiegen; Dec 4th, 2007 at 10:51 am.
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 45
Reputation: Oxiegen is an unknown quantity at this point 
Solved Threads: 3
Oxiegen Oxiegen is offline Offline
Light Poster

Re: Export DataTable to Excel with variable number of fields

 
0
  #2
Dec 5th, 2007
Problem solved.
I simply added a funktion that returns the string containing the values.

By calling the funktion like this:
  1. values = DataValues(row, dt.Columns.Count - 1)
The information is returned like this:
  1. Private Function DataValues(ByVal DRow As DataRow, ByVal Max As Integer) As String
  2. Dim retVal As String
  3.  
  4. retVal = "'" & DRow.Item(0) & "',"
  5. For i As Integer = 1 To Max - 1
  6. retVal &= "'" & DRow.Item(i) & "',"
  7. Next
  8. retVal &= "'" & DRow.Item(Max) & "'"
  9.  
  10. Return retVal
  11. End Function
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:



Other Threads in the VB.NET Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC