使用COM对象将Silverlight Datagrid导出到Excel

时间:2012-05-04 16:29:19

标签: .net vb.net silverlight excel silverlight-4.0

我在silverlight 4应用程序上有一个datagrid,我试图通过在silverlight中调用Excel的COM组件来导出到excel。它不断出错,并告诉我不支持该功能。我无法弄清楚出了什么问题,并且相信我的代码是可靠的,显然不是。

Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)

        Dim excel As Object = AutomationFactory.CreateObject("Excel.Application")

        excel.visible = True

        Dim workbook As Object = excel.workbooks

        workbook.add()

    Dim sheet As Object = excel.activesheet
    Dim cell As Object = Nothing
    Dim i As Integer = 1

    'populate the excel sheet
    For Each item In ActivityTypeCountDataGrid.ItemsSource

        cell = sheet.cells(i, 1)
        cell.Value = item.Activity_Type
        cell.ColumnWidth = 50

        cell = sheet.cells(i, 2)
        cell.Value = item.Activity_Type_Count
        cell.ColumnWidth = 50

        i += 1
    Next item



End Sub

这是数据网格 DataGrid

这是错误 Error

1 个答案:

答案 0 :(得分:2)

您有两种选择。

1)将此应用程序转换为Silverlight OOB应用程序。

2)将数据传递给WCF服务。让服务创建Excel工作簿。将文件(作为byte[]IEnumerable<byte>等)传回Silverlight应用,并提示用户使用SaveFileDialog保存文件。