以Mime方式列印Excel

来源:互联网 发布:windows live mail 编辑:程序博客网 时间:2024/06/04 17:41

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%'>

                                <trvalign='middle'>

                                    <td style='font-family:Arial' colspan='2' align='center'>

                                        Test

                                    </td>

                                </tr>

                                <trvalign='middle'>

                                    <tdstyle='font-family: Arial; vnd.ms-excel.numberformat:#,##0.0'>

                                        9999.99

                                    </td>

                                    <tdstyle='font-family: Arial'align='right'>

                                        中文

                                    </td>

                                </tr>

</table>";

4.    將內容寫入頁面,結束

        Response.Write(strData);

            Response.End();

5.    如果要在匯出的Excel文件中顯示圖表:

甲、創建實例及畫板:

        //初始化Bitmap类实例与Graphics类实例准备画图

          Bitmap myPalette = newBitmap(800, 600); //创建800*600的画板

    Graphics myGraphics = Graphics.FromImage(myPalette);

乙、繪製背景

// 绘制白色背景

         myGraphics.FillRectangle(new SolidBrush(Color.White), 0, 0, 800, 600);

丙、繪製文本

      // 绘制文本

   myGraphics.DrawString("圖表", newSystem.Drawing.Font("TimesNew 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%

        例:<tdstyle="vnd.ms-excel.numberformat:@">410522198402161833</td>

4.    在繪製圖表時,內容中的標籤屬性值一定要加上”3D”,如果沒有圖表,可以不用

5. 在繪製圖表時,組建的HTML語句請不要進行縮排,全部頂到頭