【问题标题】:How to export data from database to excel sheet using ASP.NET MVC?如何使用 ASP.NET MVC 将数据从数据库导出到 Excel 工作表?
【发布时间】:2016-06-17 19:01:35
【问题描述】:

有谁知道任何简单的 NuGet 包或其他将数据从数据库导出到 Excel 的方法?我有几张表格,每一张都想导出到其他 WorkSheet,但在同一个 Excel 文件中。

稍后我想将数据从 Excel 文件导入数据库。 对于这两个操作可能是不同的库。

我已经尝试过this 但它不起作用。


@EDIT - 已解决

这里有一些有用的链接。我希望有一天能帮助某人:)

http://epplus.codeplex.com/

http://techbrij.com/export-excel-xls-xlsx-asp-net-npoi-epplus

【问题讨论】:

  • 很遗憾看到对这个问题投了反对票,这是一个有效的问题。让我投票,以便将来对其他人有所帮助。
  • @AbhimanyuKumarVatsa,这不是一个有效的问题。这对 SO 来说是题外话,我建议您阅读帮助文件以了解这里可以接受的内容。
  • @StephenMuecke 我看到两个问题,但不是题外话。我觉得,我们应该编辑新手帖子,而不仅仅是投反对票。或者,添加一些评论让他有机会进行编辑。我仍然认为,一个真正的社区人士建议,而不是忽视。
  • @AbhimanyuKumarVatsa。我重复。这个问题是题外话,将由社区关闭。 (它不可能被编辑以使其成为主题)
  • 为什么跑题了?我认为这篇文章对功能中的某些人非常有用。

标签: c# asp.net-mvc


【解决方案1】:

此代码来自EPPlus,对您的问题也有帮助::

private void ExcelExport(DataTable table)
        {
            using (ExcelPackage packge = new ExcelPackage())
            {
                //Create the worksheet
                ExcelWorksheet ws = packge.Workbook.Worksheets.Add("Demo");

                //Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
                ws.Cells["A1"].LoadFromDataTable(table, true);

                //Format the header for column 1-3
                using (ExcelRange range = ws.Cells["A1:C1"])
                {
                    range.Style.Font.Bold = true;
                    range.Style.Fill.PatternType = ExcelFillStyle.Solid;                      //Set Pattern for the background to Solid
                    range.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(79, 129, 189)); //Set color to dark blue
                    range.Style.Font.Color.SetColor(Color.White);
                }

               //Example how to Format Column 1 as numeric 
                using (ExcelRange col = ws.Cells[2, 1, 2 + table.Rows.Count, 1])
                {
                    col.Style.Numberformat.Format = "#,##0.00";
                    col.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
                }

                //Write it back to the client
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;  filename=ExcelExport.xlsx");
                Response.BinaryWrite(packge.GetAsByteArray());
            }
        }

【讨论】:

  • 不要链接到外部资源,而是在此处发布代码/答案。外部链接经常失效。
  • 我在你之前几秒钟就找到了这个库。但是,我将标记为回答您的帖子。因为对代码的很好解释。顺便提一句。你忘了写 - 这是EPPlus lib。所以编辑你的答案:)
【解决方案2】:

有多种选择,如付费、免费或客户端转换解决方案、服务器端转换解决方案。

如果您只想导出到 excel 客户端而不影响服务器,您需要做出决定。这是为您提供的演示(运行)解决方案。

http://www.itorian.com/2015/05/export-table-data-into-excel-file.html

单击结果选项卡,然后单击“将表格数据导出到 excel”按钮。如果有帮助,请将其标记为答案。

编辑

正如您所提到的,您需要将表格导出到不同的 excel 页面(但在同一个文件中),这对您有用 http://www.aspsnippets.com/Articles/Export-DataSet-DataTables-to-multiple-Excel-Sheets-Worksheets-in-ASPNet-using-C-and-VBNet.aspx

【讨论】:

  • 正如我所说,我需要来自数据库而不是视图 (DOM) 的数据。而且我更喜欢免费选项。
  • 是的,这也很简单,只需阅读这篇文章并尝试演示,然后再查看代码aspsnippets.com/Articles/…
猜你喜欢
  • 1970-01-01
  • 2014-12-02
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 2019-05-25
  • 2016-08-25
  • 1970-01-01
相关资源
最近更新 更多