Когда я использую Epplus для экспорта в Excel, он не загружает файл Excel, вот мой код
public ActionResult ExportDataTableToExcel(string searchBox)
{
FileStream fs = null;
var fileName = "xxxReport";
fs = new FileStream(Server.MapPath(@"~/Content/Templates/xxxReport.xlsx"), FileMode.Open, FileAccess.Read);
var result = new List<xxxReport_Result>();
using (var db = new xxxEntities())
{
if (searchBox != "" && searchBox != null)
{
result = db.xxxReport()
.Where(r => r.Match.Contains(searchBox)
|| r.MD.Contains(searchBox)
|| r.SBU.Contains(searchBox)
|| r.Project.Contains(searchBox)).ToList();
}
else
{
result = db.xxxReport().ToList();
}
}
var results = Mapper.Map<List<ReportModel>>(result);
Debug.WriteLine("End : {0}", DateTime.Now.ToString("HH:mm:ss"));
using (var excel = new ExcelPackage(fs))
{
var workSheet = excel.Workbook.Worksheets.FirstOrDefault();
int i = 11;
results.ToList().ForEach(s =>
{
int col = 2;
workSheet.Cells[i, col++].Value = s.NO;
workSheet.Cells[i, col++].Value = s.Match;
workSheet.Cells[i, col++].Value = s.MD;
workSheet.Cells[i, col++].Value = s.SBU;
workSheet.Cells[i, col++].Value = s.Project;
workSheet.Cells[i, col++].Value = s.BlockUnit;
i++;
});
Response.Clear();
string saveAsFileName = string.Format("{0}_{1:d}.xlsx", fileName, DateTime.Now).Replace("/", "-");
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", saveAsFileName));
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(excel.GetAsByteArray());
Response.End();
}
return JavaScript("Export Complete");
}
Когда я нажимаю кнопку экспорта, я ничего не получаю, я пытаюсь отладить, и в коде нет ошибокно когда я использую console.log для проверки результатов, я получаю что-то, что мне нравится в моих результатах.
���ʮ�����O� & � ת����� o����Tҵ��B * ���] �� (S���d�Ŗ��) ��Oe���Ť?p> ^ ����4aπT | ����4��_100
Так я называю функцию
function ExportToExcel() {
$.post("@Url.Action("ExportDataTableToExcel", "xxx")",
{
searchBox1: $("#searchBox1").val(),
searchBox2: $("#searchBox2").val(),
searchBox3: $("#searchBox3").val(),
searchBox4: $("#searchBox4").val()
}).done(function (result) {
console.log(result);
});
}