1. 清除HTML 內容
Response.Clear();
2. 定義要匯出的文件格式及文件名稱
Response.AddHeader("content-disposition" , "attachment;filename=TestReprot.xls" );
Response.ContentType = "application/xls" ;
Response.Write("<meta http-equiv='Content-Type'; content='text/html';charset='utf-8'>" );
3. 在String 變量中填寫要匯出的內容
strData = @"<table width ='90%'>
<tr valign='middle'>
<td style='font-family: Arial' colspan='2' align='center'>
Test
</td>
</tr>
<tr valign='middle'>
<td style='font-family: Arial; vnd.ms-excel.numberformat:#,##0.0'>
9999.99
</td>
<td style='font-family: Arial'align='right'>
中文
</td>
</tr>
</table>" ;
4. 將內容寫入頁面,結束
Response.Write(strData);
Response.End();
5. 如果要在匯出的Excel 文件中顯示圖表:
甲、 創建實例及畫板:
// 初始化 Bitmap 类实例与 Graphics 类实例准备画图
Bitmap myPalette = new Bitmap (800, 600); // 创建800*600 的画板
Graphics myGraphics = Graphics .FromImage(myPalette);
乙、 繪製背景
// 绘制白色背景
myGraphics.FillRectangle(new SolidBrush (Color .White), 0, 0, 800, 600);
丙、 繪製文本
// 绘制文本
myGraphics.DrawString(" 圖表" , new System.Drawing.Font ("Times New Roman" , 14, System.Drawing.FontStyle .Bold | System.Drawing.FontStyle .Italic), new SolidBrush (Color .Black), new Rectangle (10, 5, 800, 20), stringFormat);
丁、 格線
// 割線
myGraphics.FillRectangle(new SolidBrush (Color .Black), 10, 150, 780, 1);
戊、 直接将图片以二进制流的方式输出到Response 对象的输出流
// 直接将图片以二进制流的方式输出到 Response 对象的输出流。
String strbaser64 = "" ;
MemoryStream ms = new MemoryStream ();
myPalette.Save(ms, ImageFormat .Jpeg);
byte [] bytes ={ };
bytes = ms.ToArray();
ms.Close();
strbaser64 = Convert .ToBase64String(bytes);
注意事項:
1. 文件名請使用英文
2. 內容使用XML 格式,比如我們常用到的table 標籤,樣式的設定完全套用HTML 的屬性
3. Excel 格式設定屬性:
1 ) 文本: vnd.ms-excel.numberformat:@
2 ) 日期: vnd.ms-excel.numberformat:yyyy/mm/dd
3 ) 数字: vnd.ms-excel.numberformat:#,##0.00
4 ) 货币: vnd.ms-excel.numberformat: ¥ #,##0.00
5 ) 百分比: vnd.ms-excel.numberformat: #0.00%
例: <td style="vnd.ms-excel.numberformat:@">410522198402161833</td>
4. 在繪製圖表時,內容中的標籤屬性值一定要加上”3D” ,如果沒有圖表,可以不用
5. 在繪製圖表時,組建的HTML 語句請不要進行縮排,全部頂到頭