C#.NET MVC export WORD document

       public PartialViewResult GcntlSalesP18_Word(string id)
        {
            //調用GcntlSalesP18Data方法
            var dataModel = this.GcntlSalesP18Data(id);
            var view = PartialView("_GcntlSalesP18Word", dataModel);
            return view;

        }


@model Woof.Web.ViewModels.GroupSalesMagVivianViewModel
@* jQuery *@
@Scripts.Render(
        "~/bundles/jquery")
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
        body, td {
            font-family: 標楷體;
        }
    </style>
</head>
<body bgcolor="#FFFFFF" text="#333333" leftmargin="0" marginwidth="0" topmargin="4" marginheight="4">
    <div class="panel-collapse panel-body" role="tab" id="GcntlSalesP">
        <table align="center" border="0" bordercolordark="#ffffff" bordercolorlight="#a9aba5" cellpadding="0" cellspacing="0" width="745" rules="rows" style='border-collapse:collapse'>
            <tr>
                <td colspan="7" align="left"><font color="#008000" size="4"><b> 
                    TO: @[email protected]_NM 團體櫃台</b></font></td>
            </tr>
            <tr>
                <td align="left" colspan="2" align="left"><font size="3">   FAX:@Model.gcnltSalesP18Data.CARR_FAX</font></td>
                <td colspan="4" align="left"><font size="3">E-MAIL:@Model.gcnltSalesP18Data.CARR_EMAIL</font></td>
            </tr>
            <tr>


                <td width="15%" colspan="1" align="right"><font size="3"><br>旅行社名稱:</font></td>
                <td width="35%" align="left"><font size="3"><br>@Model.gcnltSalesP18Data.COMP_FNM</font></td>
            </tr>
            <tr>
                <td width="15%" colspan="1" align="right"><font size="3">聯絡人:</font></td>
                <td width="35%" align="left"><font size="3">@Model.gcnltSalesP18Data.EMP_CNM </font></td>
                <td align="left"><font size="3">電   話:@Model.gcnltSalesP18Data.COMP_TEL</font></td>
            </tr>
            <tr>
                <td width="15%" colspan="1" align="right"><font size="3">出發日期:</font></td>
                <td width="35%" align="left"><font size="3">@Model.gcnltSalesP18Data.LEAV_DT</font></td>
                <td align="left"><font size="3">航   班:@Model.gcnltSalesP18Data.FLT_NO</font></td>


            </tr>
            <tr>
                <td width="15%" colspan="1" align="right"><font size="3">電腦代號:</font></td>
                <td width="85%" colspan="6"><font size="3">@Model.gcnltSalesP18Data.PNR_CD</font></td>
            </tr>
        </table> 
        @if (Model.gcnltSalesP18Data.paxList != null && Model.gcnltSalesP18Data.paxList.Count > 0)
        {
            <!--表格項目-->
            if (Model.Print_ID!= null && Model.Print_ID != "")
            {
                <table align="center" border="1" bordercolordark="#ffffff" bordercolorlight="#a9aba5" cellpadding="0" cellspacing="0" width="745" style='border-collapse:collapse'>
                    <tr>
                        <td width="6%" align="middle"><font size="2"> <br></font></td>
                        <td width="9%" align="middle" valign="top"><font size="2">中文姓名</font></td>
                        <td width="19%" align="middle" valign="top"><font size="2">英文姓名 </font></td>
                        <td width="15%" align="middle" valign="top"><font size="2">護照號碼 </font></td>
                        <td width="15%" align="middle" valign="top"><font size="2">國籍 </font></td>
                        <td width="12%" align="middle" valign="top"><font size="2">身分證號 </font></td>
                        <td width="12%" align="middle" valign="top"><font size="2">出生日期 </font></td>
                        <td width="12%" align="middle" valign="top"><font size="2">簽證效期 </font></td>
                    </tr>
                </table>
            }
            else
            {
                <table align="center" border="1" bordercolordark="#ffffff" bordercolorlight="#a9aba5"cellpadding="0" cellspacing="0" width="745" style='border-collapse:collapse'>
                    <tr>
                        <td width="6%" align="middle"><font size="2"> <br></font></td>
                        <td width="9%" align="middle" valign="top"><font size="2">中文姓名</font></td>
                        <td width="19%" align="middle" valign="top"><font size="2">英文姓名 </font></td>
                        <td width="15%" align="middle" valign="top"><font size="2">護照號碼 </font></td>
                        <td width="12%" align="middle" valign="top"><font size="2">國籍 </font></td>
                        <td width="12%" align="middle" valign="top"><font size="2">出生日期 </font></td>
                        <td width="12%" align="middle" valign="top"><font size="2">簽證效期 </font></td>
                    </tr>
                </table>
            }
            int Rec=0;
            for (int i = 0, j = Model.gcnltSalesP18Data.paxList.Count; i < j; i++)
            {
                Rec++;
                <!--表單資料-->
                if (Model.Print_ID != null && Model.Print_ID != "")
                {
                    <table align="center" border="1" bordercolordark="#ffffff" bordercolorlight="#a9aba5" cellpadding="0" cellspacing="0" width="745" style='border-collapse:collapse'>
                        <tr>
                            <td width="6%" align="middle"><font size="2">@Rec<br></font></td>
                            <td width="9%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].PAX_CNM</font></td>
                            <td width="19%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].PAX_ENML @Model.gcnltSalesP18Data.paxList[i].PAX_ENMF</font></td>
                            <td width="15%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].PASS_NO</font></td>
                            <td width="15%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].NATN_NM</font></td>
                            <td width="12%" align="middle" valign="top"><font size="2">@Model.gcnltSalesP18Data.paxList[i].ID_NO</font></td>
                            <td width="12%" align="middle" valign="top"><font size="2">@Model.gcnltSalesP18Data.paxList[i].BRTH_DT</font></td>
                            <td width="12%" align="middle" valign="top"><font size="2">@Model.gcnltSalesP18Data.paxList[i].VLDE_DT</font></td>


                        </tr>
                    </table>
                }
                else
                {
                    <table align="center" border="1" bordercolordark="#ffffff" bordercolorlight="#a9aba5" cellpadding="0" cellspacing="0" width="745" style='border-collapse:collapse'>
                        <tr>
                            <td width="6%" align="middle"><font size="2">@Rec<br></font></td>
                            <td width="9%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].PAX_CNM</font></td>
                            <td width="19%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].PAX_ENML  @Model.gcnltSalesP18Data.paxList[i].PAX_ENMF </font></td>
                            <td width="15%" align="left" valign="top"><font size="2"> @Model.gcnltSalesP18Data.paxList[i].PASS_NO</font></td>
                            <td width="12%" align="middle" valign="top"><font size="2">@Model.gcnltSalesP18Data.paxList[i].NATN_NM</font></td>
                            <td width="12%" align="middle" valign="top"><font size="2">@Model.gcnltSalesP18Data.paxList[i].BRTH_DT</font></td>
                            <td width="12%" align="middle" valign="top"><font size="2">@Model.gcnltSalesP18Data.paxList[i].VLDE_DT</font></td>
                        </tr>
                    </table>
                }
            }
        }          
    </div>
    <a id="aItnP18" href="#" target="_blank" style="display:none;"></a>
</body>
< /html>
<script>
    var strHtml = document.getElementsByTagName('html')[0].innerHTML;//Get the data of the entire page
    strHtml = encodeURIComponent(strHtml);//Decode
    var objA = document.getElementById("aItnP18" );//Get the control
    $.ajax({
        async: false,
        type: "POST",
        url: '/GroupSalesMag/GroupDSelPrnItn',
        data:
            {
                id: strHtml
            }, success: function (data) {                
                objA.href = '/GroupSalesMag/GroupDSelPrnItnWord';
                objA.click();
                window.opener = null;
                window.close();
            },
        error: function (error) {
            alertify.error(error.message);
        }
    });
</script>


public void GroupDSelPrnItn(string id)
        {
            HttpContext.Session["GroupDSelPrnItn"] = id;
        }

public void GroupDSelPrnItnWord()
        {
            string id = HttpContext.Session["GroupDSelPrnItn"].ToString();
            HttpContext.Session["GroupDSelPrnItn"] = null;
            string strHtml = HttpUtility.UrlDecode(id);
            string strUserId = System.Web.HttpContext.Current.User.Identity.Name;
            string strDateTime = System.DateTime.Now.ToString("yyyyMMddHHmmss");
            //國外訂車明細_(使用者代碼)_(系統時間)
            string fileStrB = strUserId + "_" + strDateTime; // 加密前
            byte[] result = Encoding.Default.GetBytes(fileStrB);
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] output = md5.ComputeHash(result);
            string fileName = BitConverter.ToString(output).ToString().Replace("-", "").ToLower() + ".doc";//After encryption


            string path = Server.MapPath(@"~\upload\ ");
            if (!System.IO.Directory.Exists(path)) // Determine whether the folder exists, if not, create
                System.IO.Directory.CreateDirectory(path);
            // Write to client 
            Response .Clear();
            //Add an HTTP header to the output stream  
            Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
            //Set the output HTTP type
            Response.ContentType = "application/vnd .ms-word";
            //Write the character array to the corresponding HTTP output stream
            Response.Write(HttpUtility.UrlDecode(strHtml));
            // after sending, close
            Response.End();
        }




Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325600282&siteId=291194637