ASP.NET GridView导出Excel 打印预览换行显示不全

最近发现一个问题,我的一篇博客( Asp.net中把DataTable或DataGrid导出为Excel)中提到的导出Excel的方法,导出的Excel文档,如果单元格的内容比较满(未换行),打印预览的时候,这个单元格会自动换行,而且行高不变,导致显示不全。
有人说这是一种“误差”,是由于Excel的“所见即所得”功能和打印控制程序的不一致造成的。(百度

最懒的办法就是在单元格加一个换行了。但是这个换行也不是这么好加的,试过  <br/>   /r/n   等等,都没有用。最后大海捞针捞到一篇文章,才解决了。


解决方案如下:

在需要换行的地方,插入 

<br style='mso-data-placement:same-cell;'/>

基于DataTableToExcel的示例:

DataTable.Rows[0]["商品名称"] += "<br/>";  //注意<br/>中的尖括号会被转义

                gvExport.RenderControl(htmlWriter);
                curContext.Response.Clear();
                //换行转换
                curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString().Replace("&lt;br/&gt;", "<br style='mso-data-placement:same-cell;'/>"));
                curContext.Response.End();


参考:http://www.jb51.net/article/16837.htm





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值