この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 210205|答える: 67

[WebAPI] WebAPIはリストデータをExcelのテーブルファイルにエクスポートします

  [リンクをコピー]
掲載地 2018/07/16 22:26:35 | | | |
C#を使ってExcelのテーブルをエクスポートするには、NPOIを使う必要があり、以下のように紹介されます:

NPOIとは、POIバージョン3.xの上に構築されたプログラムのことであり、OfficeをインストールしなくてもWordやExcelの文書を読み書きできます。
NPOIは、ExcelやWORDなどのMicrosoft OLE2コンポーネント文書の読み書きを行うためのオープンソースのC#プロジェクトです。

インターネット上の多くのコードはサーバーに保存され、物理ファイルに変換され、エクスポート(またはダウンロードリンク)される必要があります。この投稿のコードは物理ファイルを保存する必要がなく、リストデータは直接エクスポート・ダウンロード可能です

まずレンダリングを見てみましょう。


ブラウザを使って:http://localhost:63096/api/download/test インターフェースアドレスにアクセスしてExcelファイルをダウンロードします。

ダウンロードが完了したら、test.xlsを開けて通常通り読み取ることができます! 以下に示すように:



リストデータとコードの作成:



webapiコードは以下の通りです:



EntityListToExcel2003のメソッドは以下の通りです:





先の:Asp.net MVC BundleはすべてのCSSファイルをまとめてパッケージ化します
次に:VS2017 ブラウザによるデバッグ終了の入力パス
掲載地 2019/01/07 11:22:53 |
とても良いです。私はこのジェネリックを使っています
/// <summary>
        オブジェクトのセットをEXCELにエクスポートします
        /// </summary>
        <typeparam name="T">エクスポートしたいオブジェクトの種類</typeparam>
        <param name="objList" >オブジェクトの集合</param>
        <param name="FileName">エクスポートされたファイル名</param>
        <param name="columnInfo"> 列名情報</param>
        public void ListToExcel<T>(List<T> objList, string FileName, Dictionary<string, string> columnInfo)
        {
            if(columnInfo.Count == 0) { return; }
            if (objList.Count == 0) { return; }
            EXCEL HTMLを生成する
            文字列 excelStr = "";
            Type myType = objList[0]。 GetType();
            反射に基づいて、表示される属性は入力された属性名情報から得られます
            List<System.Reflection.PropertyInfo> myPro = new List<System.Reflection.PropertyInfo>();
            foreach (columnInfo.Keys の文字列 cName)
            {
                System.Reflection.PropertyInfo p = myType.GetProperty(cName);
                もし (p != null)
                {
                    myPro.Add(p);
                    excelStr += columnInfo[cName] + "\t";
                }
            }
            利用可能な属性が見つからなければ終了します
            if(myPro.Count == 0) { return; }
            excelStr += "\n";
            foreach (objList の T obj)
            {
                foreach (System.Reflection.PropertyInfo p in myPro)
                {
                    excelStr += p.GetValue(obj, null) + "\t";
                }
                excelStr += "\n";
            }
            出力 EXCEL
            HttpResponse rs = System.Web.HttpContext.Current.Response;
            ルピー。 ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            ルピー。 AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
            ルピー。 ContentType = "application/ms-excel";
            ルピー。 ExcelStrの書き方;
            ルピー。 終わり();
        }
 地主| 掲載地 2019/07/31 13:22:31 |
chenxingen168 2019年5月13日 22:12 投稿
良いコードですね、共有ありがとうございます

どういたしまして
掲載地 2019/06/18 14:39:34 |
掲載地 2018/07/20 8:09:57 |
山と川

スコア

参加者数1MB-1 貢献する-1 倒れる 理由
クヴェルチュ -1 -1 水をかけないでください。返信投稿の質を向上させることはすべてのメンバーの義務です。

すべての評価を見る

掲載地 2018/07/25 9:23:54 |
見てみて、もっといいよ
掲載地 2018/07/25 9:27:42 |
かなり良いです
7
掲載地 2018/08/22 15:56:01 |
EntityListToExcel2003 メソッド内容
掲載地 2018/09/05 16:24:07 |
水、水、水

スコア

参加者数1MB-1 貢献する-1 倒れる 理由
クヴェルチュ -1 -1 水をかけないでください。返信投稿の質を向上させることはすべてのメンバーの義務です。

すべての評価を見る

掲載地 2018/09/06 9:30:18 |
一つだけ好きで印をつけて、今後使ってみて!
掲載地 2018/09/19 15:05:17 |
とても参考になりました、ありがとうございます。
掲載地 2018/09/27 8:56:58 |
オーナーのアップデートを応援してください~
掲載地 2018/09/27 9:14:28 |
見つけてください
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com