1

含まれているデータをテーブルに挿入できるように、ExcelファイルをインポートするためにWebページ上にコンポーネントを作成する必要があります。これには、ファイルをサーバーに送信し、データを抽出して、テーブルに挿入するためにデータを送り返す必要があります。サーバー側でASP.NETMVC3を使用しています。

Ajaxを使用せずにファイルのアップロードを機能させ、OleDB接続を使用してデータ抽出を実行してファイルにアクセスしました。この問題は、テーブルに挿入するためにデータを送り返すことに関するものです。Ajax.BeginForm()ヘルパーメソッドを使用してファイルをアップロードできると思っていましたが、これはファイルのアップロードでは機能しないようです(理由を教えてくれる人はいますか?)。そのため、Ajaxを使用してデータをクライアントに送り返す方法を見つける必要があります。グーグルで見て回ると、ajax対応のファイルアップローダー用のツールがたくさん見つかりました。私が使用して見たものは:

http://valums.com/ajax-upload/

これは、ファイルがアップロードされたときにjson成功メッセージを返すことで機能します。これは、ファイルをサーバーに保存したくないので、データを返したいので、私がやろうとしていることとは一致しません。私はJavaScriptとJQueryのみを学習しているので、代わりにjson形式でデータを返し、クライアント側でハンドラーを作成してテーブルに追加できるのでしょうか。これを実現する方法について、コードスニペットや指示をいただければ幸いです。

あるいは、これを行うためのより良いアプローチがあれば、私は自分のアプローチを変更させていただきます。

4

2 に答える 2

1

あなたが言及したajaxアップロードツールキットに精通していません。しかし、あなたの質問は、あなたが立ち往生している場所を実際に説明しているのではなく、あなたが達成しようとしていることを説明しています。サーバーにアップロードすることはできますが、正しいJSONを返すことはできますか?

OnCompleteその部分が機能するようになると、そのツールキットで関数を設定できるようになります。

onComplete: function(id, fileName, responseJSON){},

これにより、適切と思わresponseJSONれるテーブルを取得してデータを入力できます。例:(最大ではありませんが):

onComplete: function(id, fileName, responseJson){
    $(responseJson).each(function(){    
        $('#yourTable').append('<tr><td>' + this + </td></tr>')
    });
}

この件に関する別の良いリンクは次のとおりです:http://aspzone.com/tech/jquery-file-upload-in-asp-net-mvc-without-using-flash/

そして、ここにあなたが探しているおそらくより詳細なハンゼルマンのリンクがあります:http: //www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCInclusiveTestsAndMocks.aspx

于 2012-05-12T14:00:05.707 に答える
1

これを試して:

  1. ファイルをサーバーのカスタム一時フォルダーにアップロードして、ランダムなファイル名を付けます

  2. アップロードが完了したら、ASPを使用してテーブルを作成します(指定されたページ自体にあります。つまり、ファイルから収集されたデータを使用してメインページを変更します)

  3. テーブルを作成したら、ファイルを削除して残りを実行します

于 2012-05-12T17:25:17.527 に答える