ASP.NET MVC で効果的にデータを Excel にエクスポートする方法
提供されているガイドでは、効率の低い HTML を使用して Excel にデータをエクスポートしようとしています。ベースのアプローチ。適切な Excel ファイルを作成するには、EPPlus などのライブラリを利用することをお勧めします。
EPPlus Library
EPPlus には、Excel 範囲にデータを入力するための LoadFromDataTable メソッドと LoadFromCollection メソッドが用意されています。 。これをコードに実装する方法は次のとおりです。
コード:
using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); //true generates headers ws.Cells["A1"].LoadFromDataTable(dataTable, true); }
デフォルトでは、列名またはプロパティ名がヘッダーとして使用されます。 EPPlus ライブラリを使用して、書式設定やテーブル スタイルなどを適用することもできます。
ファイルへの保存
Excel ファイルを保存するには、カスタム FileResult を作成します。 EpplusResult:
Code:
public class EpplusResult:FileResult { public EpplusResult(ExcelPackage package) : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { Package = package; } public ExcelPackage Package { get; private set; } }
これにより、次のアクションを記述できます:
Code:
public FileResult ExportData() { ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); // Load data to the worksheet ws.Cells[1, 1].LoadFromDataTable(table, true, TableStyles.Light1); return new EpplusResult(package) { FileDownloadName = "SomeFile.xlsx" }; }
ボーナス: ページのエクスポートデータ
PagedList を使用してページ データをエクスポートするには、アクションを変更できます:
コード:
public ActionResult ExportData() { var pagedList = db.Customers.ToPagedList(pageNumber, pageSize); ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); ws.Cells[1, 1].LoadFromCollection(pagedList, true, TableStyles.Light1); return new EpplusResult(package) { FileDownloadName = "Customers.xlsx" }; }
以上がEPPlus を使用して ASP.NET MVC から Excel にデータを効率的にエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。