2012-05-04 7 views
0

У меня есть datagrid для приложения silverlight 4, которое я пытаюсь экспортировать, чтобы добиться успеха, вызвав COM-компонент для Excel в silverlight. Он продолжает выходить из строя и говорит мне, что функциональность не поддерживается. Я не могу понять, что не так, и считаю, что мой код твердый, очевидно, что нет.Экспорт Silverlight Datagrid в Excel с использованием COM-объекта

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

+0

Это приложение без браузера? – cadrell0

+0

нет, он работает в браузере – Jared

+0

Для этого вам потребуется повышенное доверие. – Leo

ответ

2

У вас есть два варианта.

1) Преобразуйте это приложение в приложение Silverlight OOB.

2) Передайте данные в службу WCF. Попросите службу создать книгу Excel. Передайте файл (как byte[], IEnumerable<byte> и т. Д.) Обратно в приложение Silverlight и предложите пользователю сохранить файл с помощью SaveFileDialog.

+0

Datagrid вытаскивает свои данные из представления в базе данных, которая уже загружается в службу WCF. Итак, из того, что вы посоветовали, я мог написать метод в службе WCF, который мог бы создать книгу Excel, основанную на методе, который уже вытаскивает данные, а затем передает его пользователю в передней части приложения? – Jared

+0

Да, если служба WCF уже имеет доступ к данным, нет необходимости передавать ее из Silverlight в службу. – cadrell0

+0

Не повезло записать это в службе WCF, так как я не могу импортировать Imports System.Runtime.InteropServices.Automation в службе WCF – Jared

Смежные вопросы