如何使用C#在Excel文件中创建第二个工作表

时间:2013-10-13 07:21:44

标签: c# asp.net excel

我想在一个Excel文件中创建两个不同的Excel工作表。我正在使用HTML表创建Excel工作表,我想使用HTML表创建第二个Excel工作表。下面是我创建和下载Excel文件的代码:

 StringBuilder _String = new StringBuilder();

 _String.Append(" <table border=\"1\" style=\"text-align: center; border-collapse: collapse;font-family: Arial, Helvetica,
     sans-serif; font-size: 13px;\" cellpadding=\"5\" cellspacing=\"0\">");


_String.Append("<tr>");
_String.Append("<td style=\"padding: 4px; margin: 3px; height:70px; vertical-align:middle; \" rowspan=\"4\">");
_String.Append("&nbsp;");
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;height:70px; text-align:center; vertical-align:middle; \"
     rowspan=\"4\">");
_String.Append(Convert.ToString(_Count));
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;height:70px; vertical-align:middle;  text-align:center; \"
     rowspan=\"4\">");
_String.Append(Location);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;height:70px; vertical-align:middle; text-align:center; \"
     rowspan=\"4\">");
_String.Append(ATMCode);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  height:70px; vertical-align:middle;background-color: #c0c0c0;\"
     rowspan=\"4\">");
_String.Append("&nbsp;");
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; text-align:center;  height:70px;
     vertical-align:middle;background-color: #c0c0c0;\" rowspan=\"4\">");
_String.Append(Time);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; text-align:center; \">");
_String.Append("1000");
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(OpeningBal_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(OpeningBalAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(Dispense_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(DispenseAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(Purge_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(PurgeAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(Overages_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(OveragesAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(shortages_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(shortagesAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(ClosingBR_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(ClosingBRAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(Rep_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(RepAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(CB_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(CBAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(TxnNumber);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append("&nbsp;");
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(Deposit);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(Deposit);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(RetainedCrd);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; background-color: #c0c0c0;\">");
_String.Append("&nbsp;");
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(SCB_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(SCBAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\" rowspan=\"4\">");
_String.Append("&nbsp;");
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px;  background-color: #c0c0c0;\">");
_String.Append(OpeningBal_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; \">");
_String.Append(OpeningBalAm_1000);
_String.Append("</td>");
_String.Append("<td style=\"padding: 4px; margin: 3px; 
    height:70px; background-color:#CCFFCC;Color:#2E6C31;
    vertical-align:middle; text-align:center;\" rowspan=\"4\">");
_String.Append("<b>" + Status + "</b>");
_String.Append("</td>");
_String.Append("</tr>");
_String.Append("</table>");

下载代码:

Response.ContentType = "application/x-msexcel";
Response.AddHeader("Content-Disposition", "attachment;
filename=ExcelFile.xls"); Response.ContentEncoding = Encoding.UTF8;
Response.Write(_String.ToString()); Response.End();

enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

我附上一些代码。但我很困惑,因为你在单个工作簿中写了“两个excel文件”。没有意义。所以我给你一个代码,用两张表创建一个excel文件:

因此,下载ClosedXML它是一个开源项目。 http://closedxml.codeplex.com/

将visual studio中的引用添加到项目的引用中:

enter image description here

创建excel文件服务器端:

创建工作簿

var workbook = new XLWorkbook();

添加工作表:

var worksheet = workbook.Worksheets.Add("sheetName");

将数据附加到工作表:

示例:

worksheet.Cell("A1").Value = "someData";

添加另一张工作表:

var worksheet2 = workbook.Worksheets.Add("sheetName2");

保存文件

//path can be this
//string path = Server.MapPath(~/DirectoryInYourProject/FileName.xlsx);

workbook.SaveAs(path);

如果您使用ASP.NET MVC:代码在控制器中下载

return File(
    path,
    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    "FileName.xlsx");

如果你使用Web Froms:代码下载代码:

   System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
    response.ClearContent();
    response.Clear();
    response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    response.AddHeader("Content-Disposition", "attachment; filename=" +  "FileName.xlsx;");
    response.TransmitFile(path);
    response.Flush();
    response.End();

我认为这是最好的方式。使“下载为excel”功能。当然它可以通过几种方式制作,我只是告诉你我所知道的。对于使用ClosedXML,它的网站有很多例子。

答案 1 :(得分:0)

我可以选择使用EPPlus库完成此操作。这是最简单的方法