1

c# で asp.net MVC アプリを使用しており、(Entity Framework から) クエリ結果を取得し、ユーザーがダウンロードできる Excel シートにデータを配置する必要があります。これが私がやろうとしていることであり、データの各行をExcelシートに書き込む方法を知りたいですか? 私が取るべき他のアプローチも大歓迎です。

var certs = CertificateService.ReadAllSentCertificates();
                Application excel = new Application();
                string filePath = "C:/ToDoList/SentStats_" + DateTime.Now.ToString() + ".xls";

                Workbook mybook = excel.Workbooks.Add();
                excel.Visible = true;
                try
                {
                    mybook.Activate();
                    Worksheet mysheet = mybook.Worksheets.Add();

                     foreach (var x in certs)
                    {
                        // How to write each row in excel??

                    }
                   //mybook.SaveAs(Filename: filepath);
                    mybook.Save();
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    mybook.Close();
                }
4

1 に答える 1

2

Web アプリケーションで Office 相互運用機能を使用しないでください。MS Office は、サーバー上で実行するようには設計されていません。Excel シートを作成する場合は、サーバーでOpenXMLを使用できます。

別の方法として、結果を含むビューを返し、<table>このビューにapplication/vnd.ms-excel Content-Type応答ヘッダーを付けて提供することもできます。完全に制御できる OpenXML SDK を使用する場合と比較して、結果のシートの書式設定を制御することははるかに少なくなります。

于 2012-10-04T10:34:14.000 に答える