.net 导出excel方法,内容自动识别科学计数法去除方式style= 'vnd.ms-excel.numberformat:@ '

本文介绍了一种使用C#将DataTable数据转换为Excel文件的方法,包括设置响应头、编码、列标题和数据写入过程。
public void Export(string FilterName, DataTable dt, string[] headtxt)
        {
            HttpResponse resp;
         
            resp = System.Web.HttpContext.Current.Response;
           
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename=oursjia." + FilterName);
            resp.AppendHeader("Content-Type", "application/ms-excel");


            string colHeaders = "",
            ls_item = "";
            DataRow[] myRow = dt.Select();
            int i = 0;
            int cl = dt.Columns.Count;


            colHeaders = colHeaders+" <html> <head> \n ";
           
            colHeaders = colHeaders + " <meta   http-equiv='Content-Type'   content='text/html; charset=gb2312' /> \n ";
            colHeaders = colHeaders+" </head> \n ";
            colHeaders = colHeaders+" <body>\n ";
            colHeaders = colHeaders+" <table border='1'> ";
            colHeaders = colHeaders + "<tr> ";
            for (i = 0; i < headtxt.Length; i++)
            {
                if (i == (headtxt.Length - 1))
                {
                    colHeaders = colHeaders +"<td style='background-color:#CCCCCC'>"+ headtxt[i] + "</td>\n";
                }
                else
                {
                    if (FilterName == "csv")
                    {
                        colHeaders += headtxt[i] + ",";
                    }
                    else
                    {
                        colHeaders = colHeaders + "<td style='background-color:#CCCCCC'>" + headtxt[i] + "</td>";
                    }
                }
            }
            colHeaders = colHeaders + "</tr> ";
            resp.Write(colHeaders);
            foreach (DataRow row in myRow)
            {
                ls_item = ls_item + "<tr>";
                for (i = 0; i < cl; i++)
                {
                    
                    if (i == (cl - 1))
                    {
                        ls_item = ls_item + "<td style= 'vnd.ms-excel.numberformat:@ '>" + row[i].ToString() + "</td>" + "\n";
                    }
                    else
                    {
                        if (FilterName == "csv")
                        {
                            ls_item += row[i].ToString() + ",";
                        }
                        else
                        {
                            ls_item = ls_item + "<td style= 'vnd.ms-excel.numberformat:@ '>" + row[i].ToString() + "</td>";
                        }
                    }
                    
                }
                ls_item = ls_item + "</tr>";                
            }
            ls_item += " </table> \n ";
            ls_item += " </body> \n ";
            ls_item += " </html>";
            resp.Write(ls_item);
            ls_item = "";
            resp.End();
        }

<c:forEach items="${page.dataRows}" var="dataRow" varStatus="status1"> <tr> <td></td> <td>${dataRow.lccb_cjpz }</td> <td>青海</td> <td>${dataRow.lccb_chouyjpzbh }</td> <td></td> <td style="vnd.ms-excel.numberformat:@"><fmt:formatDate value="${dataRow.lccb_cysj }" pattern="yyyy-MM-dd "/></td> <td>${dataRow.lccb_jpmc }</td> <td>${dataRow.lccb_pzwh }</td> <td></td> <td>${dataRow.lccb_jsyq }</td> <td> ${dataRow.lccb_jymdxl1 == '进口' ? dataRow.lccb_sydw : (dataRow.lccb_jymdxl1 == '国内' ? dataRow.lccb_scdwsf : dataRow.lccb_scdwsf)} </td><!-- 所在省份 --> <td>${dataRow.lccb_scdw }</td> <td>${dataRow.lccb_scdwdz }</td> <td>${dataRow.lccb_scdwlxdh }</td> <td>${dataRow.lccb_scdwlcz }</td> <td>${dataRow.lccb_gg }</td> <td> ${dataRow.lccb_scrq},${dataRow.lccb_ph},${dataRow.lccb_cpbh} </td> <td>${dataRow.lccb_cyscsl }</td> <td>${dataRow.lccb_cyxssl}</td> <td>${dataRow.lccb_kcsl }</td> <td>${dataRow.lccb_jpsl}</td> <td>${dataRow.lccb_yxq}</td> <td>${dataRow.lccb_cydd }</td> <td>${dataRow.lccb_sb }</td> <td>${dataRow.lccb_bcydwxz}</td> <td>${dataRow.lccb_xkz }</td> <td>${dataRow.lccb_bcydw }</td> <td>${dataRow.lccb_bcydwdz}</td> <td>${dataRow.lccb_bcydwfzr }</td> <td>${dataRow.lccb_bcydwyb }</td> <td>${dataRow.lccb_bcydwdh}</td> <td>${dataRow.lccb_bcydwcz }</td> <td>${dataRow.lccb_cydw }</td> <td>${dataRow.lccb_cydwdz}</td> <td>${dataRow.lccb_cydwlxr }</td> <td>${dataRow.lccb_cydwyb }</td> <td>${dataRow.lccb_cydwdh}</td> <td>${dataRow.lccb_cydwcz }</td> <td>青海省药品检验检测院</td> <td>${dataRow.lccb_jyyj1}${dataRow.lccb_jyyj2}</td> <td>${dataRow.lccb_zzjl }</td> <td>${dataRow.bhgxm }</td> <td>${dataRow.lccb_bgsbz }</td> <td>${dataRow.lccb_scdwsf}</td> <td></td> <td></td> </tr> </c:forEach>在上述代码中修改的<td> ${dataRow.lccb_jymdxl1 == '进口' ? dataRow.lccb_sydw : (dataRow.lccb_jymdxl1 == '国内' ? dataRow.lccb_scdwsf : dataRow.lccb_scdwsf)} </td>为什么不生效
最新发布
10-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值