如何使用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(" "); _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(" "); _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(" "); _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(" "); _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(" "); _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库完成,它是最简单的方法
- Excel Open XML错误:创build简单示例时发现“无法读取的内容”
- HTML到Excel更改代码
- “检索COM类工厂的组件…错误:80070005访问被拒绝。”(从HRESULTexception:0x80070005(E_ACCESSDENIED))
- 完整的日历到Excel和.pdf
- 在C#中使用CreateOpenXmlReader读取openoffice的ods文件
- 如何解决一些不在gridview中显示的excel数据
- OLEDBConnection.Open()外部表格不是预期的格式
- 从excel导入数据 – 。 (点)列名称中
- 如何在excel中使用Microsoft.Office.Interop.Excel在c#中的矩形内写入文本