我在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
这是数据网格
这是错误
答案 0 :(得分:2)
您有两种选择。
1)将此应用程序转换为Silverlight OOB应用程序。
2)将数据传递给WCF服务。让服务创建Excel工作簿。将文件(作为byte[]
,IEnumerable<byte>
等)传回Silverlight应用,并提示用户使用SaveFileDialog
保存文件。