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

我想在一个Excel文件中创build两个不同的Excel工作表。 我正在使用HTML表格来创build一个Excel工作表,我想通过使用HTML表创build第二个Excel工作表。 以下是我创build和下载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(); 

在这里输入图像描述在这里输入图像描述

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

所以,下载ClosedXML这是一个开源项目。 http://closedxml.codeplex.com/

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

在这里输入图像说明

创build一个excel文件serverside:

创build工作簿

 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”function。 当然可以做几种方法,我只是给你我知道的。 对于使用ClosedXML,网站上有很多例子。

我得到了替代scheme,这可以使用EPPlus库完成,它是最简单的方法