2016-04-28 6 views
1

C#でExcelファイルを動的に作成したいので、AngularJS HTML Button Clickでダウンロード可能にする必要があります。Excelをメモリストリームに変換し、AngularJS経由でダウンロード

私は動的にhttp://www.increvcorp.com/manipulating-excel-spreadsheet-using-c/

それが正常に動作していますExcelを作成するには、以下のリンクを参照さ。 Convert excel workbook to byte[] - しかし、それは私が1件のより多くの記事を参照し

xlWorkBook.SaveAs("D:\\Mobile_List.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 

ローカルストレージにファイルを保存し、それらをメモリストリームに、ブックから直接変換するためにアイデアを与えられました。

しかし、彼らは私が私のワークブックの方法SaveToStreamを見つけることができることができません

MemoryStream m = new MemoryStream(); 
workbook.SaveToStream(m); 

を使用している記事では、エラー

「Microsoft.Office.Interopを示しています。 Excel.Workbook 'に' SaveToStream 'の定義があり、拡張メソッド' SaveToStream 'がない 定義が含まれていません タイプの最初の引数を受け入れる ' Microsoft.Office.Interop.Excel.Workbook 'が見つかりました( usingディレクティブまたはアセンブリ参照がありません)

HTMLストリームをメモリストリームとして作成し、HTMLボタンをクリックしてAngularJSにダウンロードするにはどうしたらいいですか?

もう1つの投稿をAngularJS $http-post - convert binary to excel file and downloadに紹介しました。それは、まさにangularJSの部分とPHPについて説明しました。私はこの質問を投稿している主な理由は、C#の説明はありません。

親切...

注意私を助ける:あなたのワークブックオブジェクトをバイト配列に変換することができないん

答えて

0

場合は、ローカルストレージからそれを変換しないでくださいを...、あなたはまだで動作することができますあなたは、ディスクに保存されているファイル:

var byteArray = File.ReadAllBytes("PathToSavedWorkBook"); 
using(var ms = new MemoryStream(byteArray)) 
{ 
    //Use your memorystream 
} 

あなただけのByteArrayけれどもたい場合は、最初の行は十分にある

EDIT:

使用しているクラスのドキュメントを1として:ローカルにそれを保存せずに変換する方法

+0

ファイルでブックを保存しないことは不可能であると思われhttps://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.aspx

?親切に私にアイデアを教えてください。 –

+0

[Workbook.SaveCopyAs](https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook)でブックを保存してみてください。 savecopyas.aspx)をファイル名にタイムスタンプが付いた一時的なフォルダに保存し、@ Sidewinder94の方法で再度読み込みます。 – rinukkusu

関連する問題