asp.net导出excel方式之一

用流的方式,把内容以Table的格式向Excel中放数据 好处是 可以生成格式丰富复杂的Excel,页面无刷新

aspx部分

复制代码代码如下:

<asp:Button ID="hidExport" onClick="hidExport_Click()" Runat="server"></asp:Button>

aspx.cs部分
复制代码代码如下:

//内容很好理解,只需当成Table来拼字符串即可 
private string getExcelContent() 

StringBuilder sb = new StringBuilder(); 

sb.Append("<table borderColor='black' border='1' >"); 
sb.Append("<thead><tr><th colSpan='2' bgColor='#ccfefe'>标题</th></tr>"); 
sb.Append("<tr><th bgColor='#ccfefe'>号码</th><th bgColor='#ccfefe'>名字</th></tr></thead>"); 
sb.Append("<tbody>"); 
sb.Append("<tr class='firstTR'><td bgcolor='#FF99CC'></td><td></td></tr>"); 
sb.Append("<tr class='secondTR'><td></td><td bgcolor='lightskyblue'></td></tr>"); 
sb.Append("</tbody></table>"); 
return sb.ToString(); 


private void hidExport_Click(object sender, System.EventArgs e) 

string content = getExcelContent(); 
string css = ".firstTR td{color:blue;width:100px;}.secondTR td{color:blue;width:100px;}"; 
string filename = "Test.xls"; 

CommonTool.ExportToExcel(filename, content ,css); 
}

工具类CommonTool
复制代码代码如下:

public class CommonTool 

/// <summary> 
/// 以流的形式,可以设置很丰富复杂的样式 
/// </summary> 
/// <param name="content">Excel中内容(Table格式)</param> 
/// <param name="filename">文件名</param> 
/// <param name="cssText">样式内容</param> 
public static void ExportToExcel(string filename, string content,string cssText) 

var res = HttpContext.Current.Response; 
content = String.Format("<style type='text/css'>{0}</style>{1}",cssText,content); 

res.Clear(); 
res.Buffer = true; 
res.Charset = "UTF-8"; 
res.AddHeader("Content-Disposition", "attachment; filename=" + filename); 
res.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); 
res.ContentType = "application/ms-excel;charset=UTF-8"; 
res.Write(content); 
res.Flush(); 
res.End(); 

}

这种方法比较灵活,而且可以通过选择器来添加样式,相当不错。缺点就是需要将数据转换成字符串。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值