簡體   English   中英

在MVC應用程序中將數據導出到Excel

[英]Exporting data to Excel in MVC application

我正在研究在MVC應用程序中將數據導出到Excel的各種方法。

  1. 許多庫要求將數據存儲在DataTables中。

  2. 我將數據傳遞到模型中以從View中進行訪問。 看來您無法將此模型傳遞回控制器。

  3. 如果不是將JavaScript導出為html表而是導出為純Excel文件,則可以使用JavaScript。

當前,我正在調用一個函數,該函數將再次運行查詢以構建字符串並使用System.IO.File.WriteAllText來輸出文件。 我不喜歡這種方式,因為我必須調用數據庫來再次運行查詢(我已經在視圖中的模型中擁有了我需要的所有數據)並且路徑是硬編碼的,我想彈出一個保存對話框起來

有更好的方法嗎?

我真的很想以下兩種方式之一:

  1. 找到一個“技巧”將數據從View傳遞回控制器,也許TempData可以以某種方式在View中使用?
  2. 將生成純Excel(.xlsx)文件的JavaScript

     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創建。 格式為OpenXML。 就其本身而言,使用它並不是一件很有趣的事情,但是該庫使其易於管理。 您可以按需構建XML文件,然后在響應中流式傳輸它,因此從用戶的角度來看,他們正在下載Excel文件。 鏈接的頁面顯示了如何從數據源(在本例中為DataTable)開始,創建電子表格,並將其添加到HttpResponse。 您可以創建具有公式的工作表,甚至可以創建具有多個工作表的工作簿。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM