Response.Write Table 方式导出Excel 添加样式

在ASP.NET中,使用Response.Write Table的方式导出Excel时,常常遇到表格样式无法满足需求的问题,如边框过粗。为解决这一问题,可以先导出Excel并手动调整边框样式,例如设置为细边框,然后以XML格式打开Excel,找到对应的CSS代码。将此样式(如:border:.5pt solid black;)加入到输出的HTML中,并为单元格设置相应的class属性,从而实现Excel表格边框精细化控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在asp.net中导出Excel常用  Response.Write  Table 的方式导出Excel

但是导出的报表样式可能不符合要求 ,比如说 表格边框 Table的边框宽度最小只能是 1

而导出的Excel报表的边框还是太粗 想让边框变细些 


我们可以这样做:

先用Response.Write 导出 一个Excel表格,这时用记事本或其他文本编辑器打开 只能看到一些 类似与html的代码

用office打开导出的Excel表格,编辑表格边框,右击边框 选择设置单元格格式 选择"边框"标签 外边框 然后在右边选择要设置的边框样式,保存




然后以XML格式打开该Excel文件,根据表格中的数据找到刚才设置边框的表格

,查看该单元格的class,根据class名称定位到 样式内容,刚才我设置的是 A0302单元格 ,class是x129

可以看到 单元格的样式的CSS代码

复制border :.5pt solid black; 这条,在输出时加入图中代码

                Response.Clear();
                Response.Buffer = true;
                Response.Charset = "gb2312";  // gb2312、utf-8、ISO8859-1(Latin-1)
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(Exceltitle + ".xls", Encoding.UTF8));
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//设置输出流为简体中文
                Response.ContentType = "application/msExcel";//设置输出文件类型为excel文件。 
                Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
                Response.Write("<style>.border  { border:.5pt solid black; }</style>");//添加样式
                this.EnableViewState = true;
                System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
                System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
                System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
                tb.RenderControl(oHtmlTextWriter);//将服务器控件的内容输出
                Response.Write(oStringWriter.ToString());
                Response.End();

然后在创建单元格时 为单元格设置class属性

private TableCell CreateCell(string text, int withs)
        {
            TableCell tc = new TableCell();
            tc.BorderColor = System.Drawing.Color.Black;
            //tc.BorderWidth = 1; //这句一定要注释
            tc.Font.Size = new FontUnit("9");
            tc.Text = text;
            tc.Width = withs;
            tc.HorizontalAlign = HorizontalAlign.Center;
            tc.VerticalAlign = VerticalAlign.Middle;
            tc.Attributes.Add("class", "border");//添加样式
            return tc;
        }
Ok ,再次导出 大功告成!!

当然在

Response.Write("<style>.border  { border:.5pt solid black; }</style>");//添加样式
中也可以加入其他样式代码,为了保证Excel对所加样式的支持,最好是先在Excel中设置 然后粘贴过来



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值