2013-10-13 91 views
2

我想在一個Excel文件中創建兩個不同的Excel工作表。我正在使用HTML表格來創建一個Excel工作表,我想通過使用HTML表創建第二個Excel工作表。下面是我的代碼來創建和下載Excel文件:如何使用C#在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

+0

使用一些圖書館創建於服務器端的XLS文件的最簡單方法。如果內容不是太複雜,我推薦使用ClosedXML - 只需要Google。 – jannagy02

+0

我想你沒有得到我的問題。我正在從c#下面的代碼下載單個excel文件,我想要的是在相同的Excel表單下載一個更多的excel文件。我正在使用HTML表創建excel文件,您可以從上面的代碼中獲得參考 – vippz

+0

您的第一句話:「我想在一個excel文件中創建兩個不同的Excel表單」。我剛剛給出瞭如何實現它的答案。隨着ClosedXML,你可以做更多的表 – jannagy02

回答

0

我上午替代本可以通過EPPlus庫來完成。其做

1

我附上一些代碼。但是我很困惑,因爲你在「單個工作簿」中寫入了「兩個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 :代碼下載在您的騙局troller

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

如果您使用的Web櫨:代碼在後面的代碼下載:

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,網站上有很多示例。

+0

感謝您寶貴的時間.Hi @ jannagy02您好附上上面的圖片供您參考(突出顯示在黃色部分)。在這個excel文件中,圖像CBR包含不同的設計,VCB分別包含不同的設計。請幫助我實現這一點。 – vippz

+0

因此,只需創建一個XLWorkbook,然後添加WorkSheets並使用ClosedXML的API填充數據。設置顏色等可以通過API完成。有很多示例代碼需要學習:http://closedxml.codeplex.com/wikipage?title=Showcase&referringTitle=Documentation – jannagy02

+2

我認爲這個問題會被反覆詢問,因爲通常響應是另一個第三方庫,許多人想要一個答案,不需要爲每個部署添加/更新庫。 – user1040975

相關問題