Exporting the Infragistics UltraChart to Excel

Here is a simple example of exporting the UltraChart to an Excel spreadsheet.  It uses Office Interop so you need to include a reference to the Microsoft Office 11 Object Library in your project.

1: Public Class Export 2:
3: Private Sub ChartToExcel(ByVal chart As Infragistics.Win.UltraWinChart.UltraChart) 4: Try 5:   6: Dim xl As New Excel.Application 7: Dim wb As Excel.Workbook = xl.Workbooks.Add 8: Dim sheet As Excel.Worksheet = wb.Worksheets(1) 9: sheet.Visible = Excel.XlSheetVisibility.xlSheetVisible 10:   11: 'add the top title to the sheet as the header 12: sheet.Range("A1").Value = chart.TitleTop.Text 13: sheet.Range("A1").Font.Bold = True 14: sheet.Range("A1").Font.Size = 14 15:   16: Dim dt As DataTable = CType(chart.DataSource, DataSet).Tables("Data") 17:   18: 'output the headers. 19: Dim intCol As Integer = 1 20: For Each col As DataColumn In dt.Columns 21: sheet.Cells(2, intCol) = col.ColumnName 22: intCol += 1 23: Next 24:   25: 'Bold the headers. 26: sheet.Range("A2:" & Chr(64 + intCol) & "2").Font.Bold = True 27: sheet.Range("A2:" & Chr(64 + intCol) & "2").Font.Size = 12 28:   29: 'start our data on row 3 of the worksheet. 30: Dim intRow As Integer = 3 31: For Each row As DataRow In dt.Rows 32: intCol = 1 33: For Each col As DataColumn In dt.Columns 34: sheet.Cells(intRow, intCol) = row.Item(col.ColumnName) 35: intCol += 1 36: Next 37: intRow += 1 38: Next 39:   40: wb.Application.Visible = True 41:   42: Dim oChart As Excel.Chart 43: Dim xlsAxisCategory, xlsAxisValue As Excel.Axes 44: Dim charts As Excel.ChartObjects = sheet.ChartObjects(Type.Missing) 45:   46: ' Adds a chart at x = 0, y = 0, 500 points wide and 300 tall. 47: Dim chartObj As Excel.ChartObject = charts.Add(0, 0, 400, 300) 48: oChart = chartObj.Chart 49:   50: Dim xlsSerie As Excel.SeriesCollection = oChart.SeriesCollection 51: oChart.ChartType = Excel.XlChartType.xlLine 52:   53: 'add 64 to intCol since ASCII A is 65 and then take the Chr() of it.BR> 54: Dim chartRange As Excel.Range = sheet.Range("A1", Chr((intCol - 1) + 64) & intRow) 55: oChart.SetSourceData(chartRange, Type.Missing) 56:   57: wb.Application.Visible = True 58:   59: Catch ex As Exception 60: Console.WriteLine("Doh!") 61: End Try 62:   63: End Sub 64: End Class

This article is part of the GWB Archives. Original Author: Devin Rader

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.