博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Response.Write Table 方式导出Excel 添加样式
阅读量:4212 次
发布时间:2019-05-26

本文共 2268 字,大约阅读时间需要 7 分钟。

在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; 这条,在输出时加入图中代码

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

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

[csharp]
  1. private TableCell CreateCell(string text, int withs)  
  2.         {  
  3.             TableCell tc = new TableCell();  
  4.             tc.BorderColor = System.Drawing.Color.Black;  
  5.             <span style="background-color: rgb(255, 204, 204);">//tc.BorderWidth = 1;</span> //这句一定要注释  
  6.             tc.Font.Size = new FontUnit("9");  
  7.             tc.Text = text;  
  8.             tc.Width = withs;  
  9.             tc.HorizontalAlign = HorizontalAlign.Center;  
  10.             tc.VerticalAlign = VerticalAlign.Middle;  
  11.             <span style="background-color: rgb(255, 255, 153);">tc.Attributes.Add("class""border");//添加样式</span>  
  12.             return tc;  
  13.         }  
Ok ,再次导出 大功告成!!

当然在

[csharp]
  1. <span style="background-color: rgb(255, 255, 153);">Response.Write("<style>.border  { border:.5pt solid black; }</style>");//添加样式</span>  

中也可以加入其他样式代码,为了保证Excel对所加样式的支持,最好是先在Excel中设置 然后粘贴过来

来自:http://blog.csdn.net/li_1042237864/article/details/6718212

你可能感兴趣的文章
mysql的“Got error 28 from storage engine”错误
查看>>
jdk安装
查看>>
存档数据迁移
查看>>
查看表对应的文件组
查看>>
压缩表
查看>>
SQL Server 分布式事务
查看>>
存在防火墙时MSDTC的运行配置
查看>>
SQL Server未将服务器 DBSERVER 配置为用于 DATA ACCESS
查看>>
拦截数据库增删改操作
查看>>
10倍以上提高Pentaho Kettle的MySQL写入速度
查看>>
MySQL的Galera Cluster配置说明
查看>>
SQL 添加链接服务器
查看>>
MySQL随机查询rand()优化
查看>>
dos调度ETL转换
查看>>
mysql myisam optimize任务
查看>>
myisamchk命令使用总结
查看>>
report server tempdb 过大问题
查看>>
sql server时间戳timestamp
查看>>
mysql 添加时间戳
查看>>
为什么在WinXP系统上无法安装SQL2000的服务器组件?
查看>>