エクセルのHTMLテーブルのエクスポートインスタンス

1.表曲をダウンロードするために使用HMTLの完全なコードスニペット、バイナリバイト[]種類に変換され、データベースに格納されているが、構成します。

System.Text.StringBuilder SB =新しいStringBuilderの();
sb.AppendLine(@」<HTMLのxmlns:O = 'URN:スキーマ-マイクロソフト- com:office:オフィス'のxmlns:X = 'URN:スキーマ-マイクロソフト- com:office:エクセル'のxmlns = 'のhttp:// WWW .w3.org / TR / REC-HTML40' >「);
sb.AppendLine(@ "<ヘッド>");
sb.AppendLine(@ "<META HTTP-当量= 'Content-Typeの'コンテンツ= 'text / htmlの;のcharset = UTF-8'>");
sb.AppendLine(@ "<メタ名= 'ProgIdの'コンテンツ= 'Excel.Sheet'>");
sb.AppendLine(@ "<スタイル>");
sb.AppendLine(@ "ヘッダ{背景色:#1 B8CCE4;フォントファミリー:ゴシック;}。");
sb.AppendLine(@ "コンテンツ。{背景色:#1 B8CCE4;テキスト整列は:左;フォントファミリ:のTimes New Roman;}");
sb.AppendLine(@ "N0 {背景色:#1 B8CCE4;テキスト整列:右;フォントファミリ:のTimes New Roman;のMSO -数フォーマット: '\#\、\#\#0';}。" );
sb.AppendLine(@」N2 {背景色:#1 B8CCE4;テキスト整列:右;フォントファミリ:のTimes New Roman;のMSO -数フォーマット: '\#\、\#\#0 \ 0.00' ;} ")。
sb.AppendLine(@」N6 {背景色:#1 B8CCE4;テキスト整列:右;フォントファミリ:のTimes New Roman;のMSO -数フォーマット: '\#\、\#\#0 \ 0.000000' ;} ")。

<第COLSPAN = '14' BGCOLOR = '#538ED5' スタイル= "テキスト整列:センター; フォントファミリ:のTimes New Roman '> "+ "MyCoreInfo </目>" + "提供"); sb.AppendLine(@" </ TR> ");











(もし!EXCHANGERATE = NULL)
{
sb.AppendLine(@ "<TR>");
sb.AppendLine(@ "<TH COLSPAN = '11' BGCOLOR = '#B8CCE4'スタイル= 'のborder-right:0'> </目>");
sb.AppendLine(@ "<BGCOLOR = '#B8CCE4'スタイル=番目'のborder-right:0;国境左:0;テキスト整列は:左'>為替レート:</目を>");
sb.AppendLine(@」<TH COLSPAN = '2' BGCOLOR = '#B8CCE4'スタイル= "国境左:0;テキスト整列:右;のMSO -数フォーマット:\#\、\#\#0 \ 0.000000' >」+ exchangeRate.GetValueOrDefault()ToStringメソッド( "N6")+ "</番目>");
sb.AppendLine(@ "</ TR>");
}
IF(!たstockprice = NULL)
{
sb.AppendLine(@ "<TR>");
SB。
sb.AppendLine(@ "<BGCOLOR = '#B8CCE4'スタイル=番目'のborder-right:0;国境左:0;テキスト整列:左'>株式終値:</目>");
sb.AppendLine(@」<TH COLSPAN = '2' BGCOLOR = '#B8CCE4'スタイル= "国境左:0;テキスト整列:右;のMSO -数フォーマット:\#\、\#\#0 \ .00' >」+ stockPrice.GetValueOrDefault()のToString( "N2")+ "</番目>");
sb.AppendLine(@ "</ TR>");
}

sb.AppendLine(@ "<TR>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>禁じる権利行使</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>受注</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'> GrantID </ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'> GrantDate </ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>行使日(YYYY-MM-DD)</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>役員</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>従業員ID </ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>証券取引口座番号</ TD>");
SB。AppendLine(@ "<TDクラス= 'コンテンツ'>英語名</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>株式権利確定</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>税の源泉徴収株式</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>源泉徴収税" + taxCurrency + "</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>ネット株</ TD>");
sb.AppendLine(@ "<TDクラス= 'コンテンツ'>オプション費用" +通貨+ "</ TD>");
sb.AppendLine(@ "</ TR>");

もし(String.IsNullOrEmpty(orderDetail.GrantID)!)
{
sb.AppendLine(@ "<TDクラス= 'CvtTxt'>" + orderDetail.GrantID + "</ TD>");
}

{
sb.AppendLineは(@ "<TD BGCOLOR = '#B8CCE4'スタイル= 'テキスト整列は:左;フォントファミリを:のTimes New Roman'> </ TD>");
}

...

sb.AppendLine(@ "</ TR>");
sb.AppendLine(@ "</ TABLE>");
sb.AppendLine(@ "</ DIV>");
sb.AppendLine(@ "</ BODY>");
sb.AppendLine(@ "</ HTML>");

バイト= ASCIIEncoding.UTF8.GetBytes(sb.ToString())。

2.ダウンロードがDBバイト[]の上から除去し、次いで、スローされるブラウザは、次のようにコードがダウンロードします。

文字列型= context.Request.QueryString [「タイプ」]。

トライ
{
IFileDownloadHandler GetHandlerハンドラ=( "XLS");
IF(ハンドラ== NULL)
{
スロー新しい新しい例外( "不明なファイルタイプ");
}
文字列filename;
バイト[]含むFileContent。

// []ブラウザにバイトを削除し、XLSファイルの種類をダウンロード

handler.GetFile(コンテキストは、ファイル名うち、含むFileContentアウト);

fileNameに= HttpUtility.UrlEncode(ファイル名、Encoding.UTF8)。
fileNameに= fileName.Replace( "+"、 "20%")。
context.Response.Clear();
context.Response.Charset = "UTF-8";
context.Response.Buffer =はtrue。
context.Response.AddHeader( "コンテンツ配置"、
String.Formatの( "添付;ファイル名= {0}"は、ファイル名));
context.Response.ContentEncoding = Encoding.UTF8。
context.Response.ContentType = String.Formatの( "アプリケーション/オクテットストリーム")。

const int型BUFFERSIZE = 1024 * 16。

int型のカウント= fileContent.Length / BUFFERSIZE。
私はint型。
用(i = 0; iは++; iはカウント<)
{
context.Response.OutputStream.Write(含むFileContent、iはBUFFERSIZE、BUFFERSIZEを*)。
}
int型の余り= fileContent.Length%BUFFERSIZE。
(!余り= 0)場合
、{
context.Response.OutputStream.Write(含むFileContent、iがBUFFERSIZE、残りを*)。
}

試す
{
context.Response.End()。
}
キャッチ(ThreadAbortExceptionののEX)
{
System.Diagnostics.Debug.WriteLine(EX)。
}
}
キャッチ(例外EXP)
{
(expはThreadAbortExceptionのある)場合
、{
System.Diagnostics.Debug.WriteLine(exp.Message)。
}

{
context.Response.Write(exp.Message)。
}
context.Response.End()。
}

 

 

/// <要約>
///获取文件名及文件内容
/// </要約>
/// <PARAM NAME = "コンテキスト">上下文</ PARAM>
/// <PARAM NAME = "FILENAME">文件名</ PARAM>
/// <PARAM NAME = "含むFileContent">文件内容</ PARAM>
公共ボイドGETFILE(のHttpContextコンテキスト、文字列のファイル名うち、バイト[]含むFileContentアウト)
{
たGuidファイルID =新しいGUID(context.Request。 QueryString [ "ファイルID"])。
IUploadFileServiceサービス= NULL; // ServiceFactory.FindService <IUploadFileService>();
試す
{
//サービス= ServiceFactory.FindService <IUploadFileService>();
// varファイル= service.GetByUploadFileID(ファイルID);
UploadFileBizProcess bizObj = UploadFileBizProcess.GetInstance()。

(ファイル== null)の場合は
{
( "文件不存在")新しい例外を投げます。
}
fileNameに= file.FileName。
含むFileContent = file.FileContent。
}
最後に
{
Helper.Dispose(サービス)。
}
}

 

 

MSO-数フォーマット定義データ形式は、カスタム形式を表示するためのフォーマットを、特にExcelで参照してください:CSSを追加する
MSO-番号フォーマット:「0」NO小数 
MSO-番号フォーマット:「0 \。 000 "3小数。 
MSO-番号形式:" \#\ \#\#0 \ .000 "カンマで12月3日に 
MSO-番号形式:" MM \ / DD \ / YY「Date7 
MSO-番号フォーマット: "MMMMの\ Dが\ \のYYYY" Date9 
MSO-番号形式: "M \ / D \ / YY \ H \:ミリメートル\ AM \ / PM" AMPM -T D 
MSO-番号形式: "短日" 01 / 03/1998 
MSO-番号フォーマット: "ミディアム日" 01日- 3月-98- 
MSO-番号フォーマット: "D \ -mmm \ -yyyy" 01日- 3月-1998- 
MSO-番号形式: "ショートタイム" 5 :16 
MSO-番号形式: "中時間" 5:16 
MSO-番号形式: "長時間" 5:16:21である:00 
MSO-番号フォーマット: 「パーセント」パーセント-小数点以下2桁
MSO-数形式:「0%」パーセント-ない小数 
MSO-番号フォーマット: "0 \ .E + 00"指数表記 
MSO-数形式: "\ @"テキスト 
MSO-数形式: "の\#\ ??? \ / ???" 画分- 3桁まで(943分の312)

おすすめ

転載: www.cnblogs.com/itjeff/p/11401785.html