将数据导出到 MVC 应用程序中的 Excel
Exporting data to Excel in MVC application
我正在研究在我的 MVC 应用程序中将数据导出到 Excel 的各种方法。
很多库要求将数据存储在数据表中。
我将我的数据传递到模型中以从视图访问。您似乎无法将此模型传回控制器。
JavaScript 是一个选项,如果它不是导出为 html table 而是纯 Excel 文件。
目前,我正在调用一个函数,该函数将再次 运行 查询以构建字符串并使用 System.IO.File.WriteAllText 输出文件。我不喜欢这种方式,因为我必须再次调用数据库以 运行 查询(我已经在视图中的模型中拥有我需要的所有数据)并且路径是硬编码的,我想要一个弹出保存对话框。
有更好的方法吗?
我非常想要以下两种方式之一:
- 找个"trick"把数据从View传回controller,也许TempData可以用在View里?
JavaScript 将生成纯 Excel (.xlsx) 文件
List<type> record = GetRecords();
StringBuilder sb = new StringBuilder();
sb.AppendLine("Data 1, Data 2, Data 3, Data 4");
foreach (var item in record)
{
sb.AppendFormat("{0},{1},{2},{3},{4}\n", item.1, item.2, item.3, item.4);
}
System.IO.File.WriteAllText("myfile.csv", sb.ToString());
您可以使用 EPPlus 这样的库。 Excel 个文件可以完全在 XML 中创建。格式为打开XML。就其本身而言,使用它并没有什么乐趣,但是这个库使它易于管理。您可以按需构建 XML 文件,然后将其流式传输到响应中,因此从用户的角度来看,他们正在下载 Excel 文件。链接页面显示了如何从数据源(在本例中为 DataTable)开始,创建电子表格并将其添加到 HttpResponse。您可以创建包含公式的工作表,甚至可以创建包含多个工作表的工作簿。
我正在研究在我的 MVC 应用程序中将数据导出到 Excel 的各种方法。
很多库要求将数据存储在数据表中。
我将我的数据传递到模型中以从视图访问。您似乎无法将此模型传回控制器。
JavaScript 是一个选项,如果它不是导出为 html table 而是纯 Excel 文件。
目前,我正在调用一个函数,该函数将再次 运行 查询以构建字符串并使用 System.IO.File.WriteAllText 输出文件。我不喜欢这种方式,因为我必须再次调用数据库以 运行 查询(我已经在视图中的模型中拥有我需要的所有数据)并且路径是硬编码的,我想要一个弹出保存对话框。
有更好的方法吗?
我非常想要以下两种方式之一:
- 找个"trick"把数据从View传回controller,也许TempData可以用在View里?
JavaScript 将生成纯 Excel (.xlsx) 文件
List<type> record = GetRecords(); StringBuilder sb = new StringBuilder(); sb.AppendLine("Data 1, Data 2, Data 3, Data 4"); foreach (var item in record) { sb.AppendFormat("{0},{1},{2},{3},{4}\n", item.1, item.2, item.3, item.4); } System.IO.File.WriteAllText("myfile.csv", sb.ToString());
您可以使用 EPPlus 这样的库。 Excel 个文件可以完全在 XML 中创建。格式为打开XML。就其本身而言,使用它并没有什么乐趣,但是这个库使它易于管理。您可以按需构建 XML 文件,然后将其流式传输到响应中,因此从用户的角度来看,他们正在下载 Excel 文件。链接页面显示了如何从数据源(在本例中为 DataTable)开始,创建电子表格并将其添加到 HttpResponse。您可以创建包含公式的工作表,甚至可以创建包含多个工作表的工作簿。