I am getting data from my database and I want to have that data as a table in excel file. So, I have written the following :
Dim sheetToPopulate As Excel
Look at something like EPlus which seems to be a popular library.
... or FileHelpers, where there is a good quickstart showing you how to create a .csv file
You can just use the export functionality of Sql Server Management studio if it's a one off type job?
Best way is to use XmlSerialization of the data table and then perform Excel Loading of the serialised Xml...
There is a nice open source utility (which you can add to your project and make changes to as well) called ExcelLibrary ... please refer to this article... Create Excel (.XLS and .XLSX) file from C#
This is one of the most efficient ways of Bulk Excel Loading.
Here is how I solved this :
Private Function getData(ByVal query As String, ByVal conStr As String) As Object
Dim adapter As New Data.OleDb.OleDbDataAdapter(query, conStr)
Dim dataSet As New Data.DataSet
adapter.Fill(dataSet)
Dim dataTable As Data.DataTable = dataSet.Tables(0)
Dim data(dataTable.Rows.Count, dataTable.Columns.Count - 1) As Object
For col = 0 To dataTable.Columns.Count - 1
For row = 0 To dataTable.Rows.Count - 1
data(row, col) = dataTable.Rows(row).ItemArray(col)
Next
Next
Return data
End Function
Then Finally, do the following to the range where you want to have this data
range.Value = getDate(query,conStr)
That solved the whole problem !
The simplest solution is if you write a csv file. In the csv the columns are separated with comma (;) and the excel can read this file.
The best way is the OLE Automation but for this you have to install an excel to the pc where your program runs. Here is a sample: OLE Automation