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

标签 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

最佳答案

我附上一些代码。但我很困惑,因为你写了“单个工作簿中的两个 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:在 Controller 中下载代码

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,其网站中有很多示例。

关于c# - 如何使用 C# 在 Excel 文件中创建第二个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19342819/

相关文章:

c# - 如何编写测试用例?

c# - 如何强制 throw 成为语句而不是表达式(在 lambda 表达式中)?

c# - 在页面加载时使用 foreach 循环和 DataList

c# - 在主页 Nopcommerce 上添加 block 标题以分隔产品

VBA 宏 - 数据透视表 CurrenRegion

c# - 单元测试 DateTime.Now

c# - 如何使用已部署的常规 html 网站部署 .aspx Web 表单页面?

asp.net - HTML 助手 DropDownList 解释

excel - 自动计算过滤结果的平均值

java - 在 Apache POI 中按单元格名称设置新单元格值