gpt4 book ai didi

asp.net - 将 HTML 表格导出到 Excel

转载 作者:行者123 更新时间:2023-12-03 23:05:06 25 4
gpt4 key购买 nike

我在 ASP.NET MVC View 页面上有 HTML 表格。现在我必须将该表导出到 Excel。

(1) 我使用部分 View (Inquiries.ascx) 来显示数据库中的表数据(使用 LINQ to Entity)(2) 我还使用了 UITableFilter 插件来过滤记录(例如: http://gregweber.info/projects/demo/flavorzoom.html )

(3) 在任何时候,我都必须过滤 Excel 中的可见记录。

感谢您的回复。

谢谢

丽塔

这是我的观点:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Mvc.Master" Inherits="System.Web.Mvc.ViewPage" %>


<asp:Content ID="Content2" ContentPlaceHolderID="cphHead" runat="server">
<script src="../../Scripts/jquery.tablesorter.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.uitablefilter.js" type="text/javascript"></script>

<script type="text/javascript">
//Load Partial View
$('#MyInquiries').load('/Home/Inquiries');

// To Apply Filter Expression using uiTableFilter plugin
$("#searchName").keyup(function() {
$.uiTableFilter($("#tblRefRequests"), this.value);
$("#tblRefRequests").tablesorter({ widthFixed: true, widgets: ['zebra'] });
});


//Export the HTML table contents to Excel
$('#export').click(function() {
//Code goes here

});
</script>
</asp:Content>

//Main Content
<asp:Content ID="Content1" ContentPlaceHolderID="cphContent" runat="server">
<h2 class="pageName">View All Inquiries</h2>
<input type="submit" value="Export to Excel" id="export" />
<div id='MyInquiries'></div>
</asp:Content>

强类型部分 View 用户控件(Inquiries.ascx)来生成表:

<table>
<tr><td valign ="middle">Filter Expression: <%= Html.TextBox("searchName")%></td></tr>
</table>
<table id="tblRefRequests" >
<thead>
<tr>
<th>Tx_ID</th>
<th>TX Date</th>
<th>Name</th>
<th>Email Address </th>
<th>Products</th>
<th>Document Name</th>
</tr>
</thead>

<tbody>
<% foreach (var item in Model) { %>
<tr>
<td visible =false><%= item.RequestID %></td>
<td><%= String.Format("{0:d}", item.RequestDate) %></td>
<td><%= item.CustomerName %></td>
<td><%= Html.Encode(item.Email) %></td>
<td><%= item.ProductName %></td>
<td><%= Html.Encode(item.DocDescription)%></td>
</tr>
<% } %>
</tbody>
</table>

这是我的 Controller 代码,用于加载查询部分 View :

[HttpGet]
public PartialViewResult Inquiries()
{
var model = from i in myEntity.Inquiries
where i.User_Id == 5
orderby i.TX_Id descending
select new {
RequestID = i.TX_Id,
CustomerName = i.CustomerMaster.FirstName,
RequestDate = i.RequestDate,
Email = i.CustomerMaster.MS_Id,
DocDescription = i.Document.Description,
ProductName = i.Product.Name
};
return PartialView(model);
}

最佳答案

尝试 jQuery 插件:table2csv 。使用参数 Delivery:'value' 将 csv 作为字符串返回。

这是一个实现:

  1. 向页面添加常规 html 输入按钮和 .NET HiddenField
  2. 向名为“导出”的按钮添加 onclick 事件
  3. 创建一个 JavaScript 函数 Export,将 table2CSV() 的返回值存储到隐藏字段中,然后发回。
  4. 服务器接收隐藏字段发布数据(csv作为字符串)
  5. 服务器将字符串以 csv 文件形式输出到浏览器

.

// javascript  
function Export()
{
$('#yourHiddenFieldId').val() = $('#yourTable').table2CSV({delivery:'value'});
__doPostBack('#yourExportBtnId', '');
}

// c#
if(Page.IsPostBack)
{
if(!String.IsNullOrEmpty(Request.Form[yourHiddenField.UniqueId]))
{
Response.Clear();
Response.ContentType = "text/csv";
Response.AddHeader("Content-Disposition", "attachment; filename=TheReport.csv");
Response.Flush();
Response.Write(Request.Form[yourHiddenField.UniqueID]);
Response.End();
}
}

关于asp.net - 将 HTML 表格导出到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com