2

我想在一个 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();

在此处输入图像描述 在此处输入图像描述

4

2 回答 2

2

我附上一些代码。但是我很困惑,因为您在单个工作簿中编写了“两个 excel 文件”。这没有任何意义。所以我给你一个代码来创建一个包含两张表的 excel 文件:

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

将 Visual Studio 中的引用添加到项目的引用中:

在此处输入图像描述

创建一个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,它的站点中有很多示例。

于 2013-10-22T09:37:00.550 回答
0

我有一个替代方案,可以使用 EPPlus 库来完成。这是最简单的方法

于 2013-12-10T10:49:36.093 回答