导出Excel,可以转换科学计数法为文本,不用引用Excel组件

#region 输出Excel
        public static void CreateExcelOther(Page page, DataSet ds, string colHeaders, string typeid, string FileName)
        {
            HttpResponse resp;
            resp = page.Response;
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            //resp.ContentType = "application/Vnd.MS-Excel";
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
            string ls_item = "";
            int i = 0;

            //定义表对象与行对像,同时用DataSet对其值进行初始化
            System.Data.DataTable dt = ds.Tables[0];
            string bodyData = ExportTable(colHeaders,ds);
            // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件
            if (typeid == "1")
            {
                //向HTTP输出流中写入取得的数据信息
                //resp.Write(colHeaders);

                resp.Write(bodyData);
            }
            else
            {
                if (typeid == "2")
                {
                    //从DataSet中直接导出XML数据并且写到HTTP输出流中
                    resp.Write(ds.GetXml());
                }
            }
            //写缓冲区中的数据到HTTP头文件中
            resp.End();
        }
        #endregion

        #region 表格数据
        public static string ExportTable(string colHeaders, DataSet ds)
        {
            StringBuilder sb = new StringBuilder();
            //data = ds.DataSetName + "\n";
            int count = 0;

            foreach (DataTable tb in ds.Tables)
            {
                //data += tb.TableName + "\n";
                sb.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
                sb.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
                写出列名
                sb.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">");
                foreach (string aStr in colHeaders.Split('\t'))
                {
                    sb.AppendLine("<td>" + aStr + "</td>");
                }
                sb.AppendLine("</tr>");

                //写出数据
                foreach (DataRow row in tb.Rows)
                {
                    sb.Append("<tr>");
                    foreach (DataColumn column in tb.Columns)
                    {
                        if (column.ColumnName.Equals("IDCard") || column.ColumnName.Equals("IDCard"))
                            sb.Append("<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>");
                        else
                            sb.Append("<td>" + row[column].ToString() + "</td>");
                    }
                    sb.AppendLine("</tr>");
                    count++;
                }
                sb.AppendLine("</table>");
            }

            return sb.ToString();
        }
        #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值