MVC에서 응용 프로그램을 개발 중이며 데이터를 Excel 시트로 내보내려고합니다. 현재 내가 제대로MVC에서 시트를 엑셀로 내보내기하는 방법
public ActionResult ExportToExcel(int id)
{
string UserName = (string)HttpContext.Session["loggedUserName"];
PurchaseOrderService purchaseOrderService = new PurchaseOrderService();
PurchaseOrderDTO PurchaseOrder = purchaseOrderService.GetById(Convert.ToInt32(id));
StringBuilder sb = new StringBuilder();
sb.Append("<table border=`" + "1px" + "`b>");
sb.Append("<tr>");
sb.Append("<td><b><font face=Calibri size=3>Created By : " + UserName + "</font></b></td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td><b><font face=Calibri size=3>Purchase Order No. :" + PurchaseOrder.Id.ToString() + "</font></b></td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td><b><font face=Calibri size=3>Vendor Name : " + PurchaseOrder.VendorName.ToString() + "</font></b></td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td><b><font face=Calibri size=3>Purchase Order Date : " + PurchaseOrder.OrderDate.ToString("dd-MMM-yy") + "</font></b></td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td><b><font face=Calibri size=3>SR NO.</font></b></td>");
sb.Append("<td><b><font face=Calibri size=3>PRODUCT CODE</font></b></td>");
sb.Append("<td><b><font face=Calibri size=3>VP CODE</font></b></td>");
sb.Append("<td><b><font face=Calibri size=3>PRODUCT DESCRIPTION</font></b></td>");
sb.Append("<td><b><font face=Calibri size=3>QUANTITY</font></b></td>");
sb.Append("</tr>");
int rowCount = 1;
var quantity = 0;
foreach (var item in PurchaseOrder.purchaseOrderItemDTOList)
{
if (PurchaseOrder.purchaseOrderItemDTOList.Count > 1)
{
sb.Append("<td><font face=Calibri size=" + "11px" + ">" + rowCount.ToString() + "</font></td>");
sb.Append("<td><font face=Calibri size=" + "11px" + ">" + item.Product.ProductCode.ToString() + "</font></td>");
sb.Append("<td><font face=Calibri size=" + "11px" + ">" + item.Product.VendorProductCode.ToString() + "</font></td>");
sb.Append("<td><font face=Calibri size=" + "11px" + ">" + item.Product.Name.ToString() + "</font></td>");
sb.Append("<td><font face=Calibri size=" + "11px" + ">" + item.Quantity.ToString() + "</font></td>");
quantity = quantity + item.Quantity;
}
sb.Append("</tr>");
rowCount = rowCount + 1;
}
sb.Append("<tr>");
sb.Append("<td colspan=3></td>");
sb.Append("<td><b><font face=Calibri size=3>Total Quantity : </font></b></td>");
sb.Append("<td><font face=Calibri size=" + "11px" + ">" + quantity.ToString() + "</font></td>");
sb.Append("</tr>");
sb.Append("</table>");
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=PO NO_" + PurchaseOrder.Id +"_"+ DateTime.Now.ToString("dd-MMM-yy") + ".xls");
this.Response.ContentType = "application/vnd.ms-excel";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
return File(buffer, "application/vnd.ms-excel");
}
이 코드를이 코드 코드를 작품을 사용하고 있지만 때 나는 그것이 표시하는 엑셀 시트 열려고하고 - 그 작업을 수행하는 다른 방법은
The file you are trying to open is in different format than specified by the file extension.
거기를?
가능한 중복 (http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file- [엑셀 (.XLS 및 .XLSX)의 C#에서 파일을 만듭니다] from-c-sharp) – Andreas