1.前段代码 使用window.location.href 访问后端接口
function Export()
{
window.location.href = "/SupplyChainManage/ArrivalBill/ExportInvVenInfo";
}
2.后端 返回File
public async Task<ActionResult> ExportInvVenInfo(string VenName, string cVenName, string BeginTime, string EndTime)
{
StringWriter strWriter = new StringWriter();
List<VenInvClass> VenInvList = new List<VenInvClass>();
//获取产品
var detailObj = (await arrivalBillBLL.GetDetailslistForHZInfo(new ArrivalBillListParam { })).Data;
//获取供应商
var detail_Ven = (await arrivalBillBLL.GetVendorListForHZ(new ArrivalBillListParam { VenClassName = VenName, VenName = cVenName })).Data;
//给产品赋值
foreach (var item in detailObj)
{
VenInvClass inv = new VenInvClass();
inv.Name = item.FreeItem1;
inv.VenList = new List<VendorClass>();
foreach (var itemVen in detail_Ven)
{
VendorClass venc = new VendorClass();
venc.Name = itemVen.cVenName;
venc.VIQtyEntity = new VenInvQtyClass();
//根据供应商 颜色,查找对应的数量,辅数量
var detail_Qty = (await arrivalBillBLL.GetDetailsForVenAndInv(itemVen.VendorId, item.FreeItem1, BeginTime, EndTime)).Data;
if (detail_Qty != null)
{
venc.VIQtyEntity.Qty = detail_Qty.Qty == null ? 0 : detail_Qty.Qty;
venc.VIQtyEntity.Qty2 = detail_Qty.Qty2 == null ? 0 : detail_Qty.Qty2;
}
else
{
venc.VIQtyEntity.Qty = 0;
venc.VIQtyEntity.Qty2 = 0;
}
inv.VenList.Add(venc);
}
VenInvList.Add(inv);
}
StringBuilder sb = new StringBuilder();
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<thead>");
sb.Append("<tr>");
sb.Append("<th>厂家</th>");
sb.Append("<th>颜色</th>");
foreach (var item in VenInvList)
{
sb.Append("<th>" + item.Name + "</th>");
}
sb.Append("<th>合计</th>");
sb.Append("</tr>");
sb.Append("</thead>");
sb.Append("<tbody>");
for (int i = 0; i < VenInvList[0].VenList.Count; i++)
{
var QtyHJ = 0.0;
var Qty2HJ = 0.0;
sb.Append("<tr>");
sb.Append("<td rowspan='2'>" + VenInvList[0].VenList[i].Name + "</td> <td>重量/kg</td>");
foreach (var item2 in VenInvList)
{
QtyHJ += Convert.ToDouble(item2.VenList[i].VIQtyEntity.Qty);
sb.Append("<td>"+ item2.VenList[i].VIQtyEntity.Qty + "</td>");
}
sb.Append("<td>" + Math.Round(QtyHJ,3) + "</td></tr>");
sb.Append("<tr > <td>数量/支</td>");
foreach (var item2 in VenInvList)
{
Qty2HJ += Convert.ToDouble(item2.VenList[i].VIQtyEntity.Qty2);
sb.Append("<td>" + item2.VenList[i].VIQtyEntity.Qty2 + "</td>");
}
sb.Append("<td>" + Math.Round(Qty2HJ, 3) + "</td></tr>");
}
strWriter.Write(sb.ToString());
byte[] fileContents = Encoding.GetEncoding("utf-8").GetBytes("<html><head><meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">" + strWriter.ToString() + "</body></html>");
return File(fileContents, "application/vnd.ms-excel", string.Format("{0}.xls", "采购汇总" + DateTime.Now.Date.ToString("yyyyMMdd")));
}