[英]New Excel file with OfficeOpenXml in ASP.Net MVC : nothing is returned
我用OfficeOpenXml創建了一個Excel文件,但是沒有返回瀏覽器。
知道為什么嗎?
[C#] :
public ActionResult ExportToExcel(string[] mails)
{
using (var ep = new ExcelPackage())
{
var ws = ep.Workbook.Worksheets.Add("Contacts");
for (var i = 0; i < mails.Length; i++)
{
ws.Cells[i + 1, 1].Value = mails[i];
}
Byte[] bytes = ep.GetAsByteArray();
return new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "Contacts.xls" };
}
}
[JavaScript]:
$('#contacts-excel-btn').click(function () {
var mails = [],
uniqueMails = [];
$('.email-td').each(function () {
var txt = $(this).text();
if (txt) {
mails.push(txt);
}
});
$.each(mails, function (i, el) {
if ($.inArray(el, uniqueMails) === -1) {
uniqueMails.push(el);
}
});
if (uniqueMails[0]) {
$.ajax({
type: 'POST',
url: '/Contact/ExportToExcel',
dataType: 'json',
traditional: true,
data: { mails: uniqueMails }
});
}
});
好的,我解決了我的問題。
根據本文的介紹 ,我將return
替換為:
var butes = ep.GetAsByteArray();
var fileName = "Contacts.xlsx";
return base.File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
根據本文 ,我用html表單方法替換了我的ajax方法:
[JS]:
$.each(uniqueMails, function (i, el) {
$('#contacts-excel-form').append('<input type="hidden" name="mails[' + i + ']" value="' + el + '" />');
});
$('#contacts-excel-form').submit();
[C#] :
var mails = Request.Form.AllKeys;
for (var i = 0; i < mails.Length; i++)
{
ws.Cells[i + 1, 1].Value = Request.Form[mails[i]];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.