2012-05-04 7 views
0

SilverlightでExcelのCOMコンポーネントを呼び出すことによってExcelにエクスポートしようとしているSilverlight 4アプリケーションにDataGridがあります。エラーが発生しても、その機能はサポートされていないことがわかります。私は何が間違っているのかを確かめることができず、私のコードは確かに確かではないと確信しています。ここでCOMオブジェクトを使用してSilverlight Datagridを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

であるあなたは、2つのオプションがあり、エラー Error

+0

これはブラウザのアプリケーションですか? – cadrell0

+0

いいえ、ブラウザ内で実行されます – Jared

+0

これが機能するには、高い信頼が必要です。 – Leo

答えて

2

です。

1)このアプリケーションをSilverlight OOBアプリケーションに変換します。

2)データをWCFサービスに渡します。サービスにExcelワークブックを作成させます。ファイル(byte[]IEnumerable<byte>など)をSilverlightアプリに渡して、SaveFileDialogを使用してファイルを保存するようにユーザーに求めます。

+0

DataGridは、すでにWCFサービスにロードされているデータベース内のビューからデータを取得しています。だからあなたが教えていることから、すでにデータを引き出しているメソッドに基づいてExcelワークブックを作成し、それをアプリケーションのフロントエンドでユーザーに渡すことができるメソッドをWCFサービスに書くことができましたか? – Jared

+0

はい、WCFサービスが既にデータにアクセスできる場合、Silverlightからサービスに渡す必要はありません。 – cadrell0

+0

WCFサービスでこれを記述することができません。WCFサービスでImports System.Runtime.InteropServices.Automationをインポートできません。 – Jared

関連する問題