1

トラブルに巻き込まれる前に、いくつか確認させていただきたいことがあります。多くのコントロールを含むダッシュボード プロジェクトで作業しています。すべてが単一のパネル コントロールに挿入されます。コントロールは、テーブル、グリッド、イメージ、チャート、いくつかの jquery プラグインになります。

Word、Excel、PDF のエクスポート オプションを提供したいと考えています。asp.net で、すべてのコントロールを含む単一のパネルを Word ドキュメントにエクスポートすることは可能ですか。

あなたの提案を教えてください

4

5 に答える 5

0

たとえば、ページの情報に基づいて画面を構築するJavascript html2Canvasを使用して、画面のスクリーンショットを作成できます。よくわかりませんが、この情報をサーバーに送信し、PDFを作成してから送信することができますブラウザ (理論的には少なくとも可能)

于 2012-09-04T13:39:37.407 に答える
0

ええ、実際にはかなり単純です。Gridview を Excel にエクスポートする例を次に示します。どのコントロールでも同じことができます。this.gvRequests.RenderControl の代わりに、Panel control.RenderControl を置き換えます。それをいじって、それがどうなるか見てみましょう。

 //Export the datagrid to Excel
        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);

        Response.AddHeader("content-disposition", "attachment; filename=SearchResults.xls");
        Response.ClearContent();


        Response.ContentType = "application/vnd.ms-excel";
        this.gvRequests.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.Flush();
        Response.End();
于 2012-09-04T14:56:53.780 に答える
0

動的なクライアント側コードがある場合、これを行うことはできません。

ドキュメントの一部をクライアント側で .doc に変換する方法はありません (最も近い方法は、印刷から PDF にすることですが、あまり役に立ちません)。

通常、aspose のようなライブラリを使用して .doc を生成することにより、このサーバー側のようなことを行います。

必要な結果を得るには、クライアントがダウンロードできる .doc を生成するために、おそらくやり直し、サーバー側ですべてを再作成する必要があります。

于 2012-09-04T13:29:23.710 に答える
0

はい、

static public void RenderToExcel(Panel panelReport1, Panel panelReport2, Panel panelReport3, string strFileName) { HttpContext.Current.Response.Clear(); string attachment = "attachment; ファイル名=" + strFileName + ".xls"; //HttpContext.Current.Response.AddHeader("content-disposition", attachment); HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; HttpContext.Current.Response.AddHeader("content-disposition", attachment); HttpContext.Current.Response.Charset = ""; //HttpContext.Current.Response.ContentType = "application/vnd.xls";

    //HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252);
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    panelReport1.RenderControl(htw);
    if (panelReport2 != null)
    {
        panelReport2.RenderControl(htw);
        if (panelReport3 != null)
            panelReport3.RenderControl(htw);
    }
    HttpContext.Current.Response.Write(sw.ToString());
    Response.End();


}
于 2014-07-24T08:16:11.920 に答える
-1

コードで WebBrowser コントロールのサーバー側を使用して、サーバー メモリ内の独自のページを要求し、その方法で画像を生成するか、このライブラリを (より簡単に) http://www.websitesscreenshot.com/を使用できます。

編集

これを少し考えた後、あなたが望むものはすでに利用可能です!

ユーザーは Web ページに移動し、ALT + Print Screen を押し、Word または Excel に移動し、CTRL + P を押します!!! 仕事は完了し、\0/ に組み込まれています。早く家に帰ります :)

于 2012-09-04T13:31:36.690 に答える