在网络上经常需要给用户提供一下下载功能,给大家提供几种方法:
1.以下代码是重数据库中读取数据,下载保存为TXT格式的文件。
public class Down : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// context.Response.ContentType = "text/plain";
//设置文件头,文件名
context.Response.AddHeader("Content-Disposition", "attachment;filename=" +context.Server.UrlEncode("文件名")+ ".txt");
StringBuilder sb = new StringBuilder();
List<FilterWord> fwlist= new FilterWordManager().GetAll();//读取数据库中的数据
foreach (FilterWord item in fwlist)
{
sb.AppendLine(item.WordPattern+"={"+item.ReplaceWord+"}");
}
context.Response.Write(sb.ToString());
}
public bool IsReusable {
get {
return false;
}
}
}
2.以下代码.以下代码是重数据库中读取数据,下载保存为XLS格式的文件。
在这里使用的是NOPI,它可以用来生产EXECL文件。
string file = HttpUtility.UrlEncode("动态生成.xls");//url编码,防止乱码
context.Response.AddHeader("Content-Disposition", "attachment;filename=" + file);
List<FilterWord> fwlist = new FilterWordManager().GetAll();
HSSFWorkbook work = new HSSFWorkbook();
HSSFSheet sheet = work.CreateSheet("过滤词库");//页
int rowindex=0;
HSSFRow row;//行
HSSFCell cell1;//列1
HSSFCell cell2;//列2
row= sheet.CreateRow(0);
cell1= row.CreateCell(0, HSSFCell.CELL_TYPE_STRING);
cell1.SetCellValue("词汇");
cell2 = row.CreateCell(1,HSSFCell.CELL_TYPE_STRING);
cell2.SetCellValue("级别");
foreach (FilterWord item in fwlist)
{
rowindex++;
row = sheet.CreateRow(rowindex);
cell1= row.CreateCell(0,HSSFCell.CELL_TYPE_STRING);
cell1.SetCellValue(item.WordPattern);
cell2 = row.CreateCell(1,HSSFCell.CELL_TYPE_STRING);
cell2.SetCellValue(item.ReplaceWord);
}
work.Write(context.Response.OutputStream);