2

1 つの Excel ファイルに 2 つの異なる Excel シートを作成したいと考えています。HTML テーブルを使用して Excel シートを作成していますが、HTML テーブルを使用して 2 つ目の 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

コードをいくつか添付します。しかし、「1つのワークブックに2つのExcelファイル」と書いてあるので、私は混乱しています。意味がありません。そこで、2 つのシートを含む 1 つの 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();

最善の方法だと思います。「エクセルでダウンロード」機能を作る。もちろん、いくつかの方法で作成できます。私が知っていることだけをお伝えします。ClosedXML の使用については、そのサイトに多くの例があります。

于 2013-10-22T09:37:00.550 に答える
0

EPPlusライブラリを使用してこれを行うことができる代替手段があります。これは最も簡単な方法です

于 2013-12-10T10:49:36.093 に答える