content-disposition 文件下载 图片 Excel

在进行Web开发时,可能遇到遇到以下几种需求:

l 希望某类或者某已知MIME 类型的文件(比如:.gif;.txt;*.htm)能够在访问时弹出“文件下载”对话框。

l 希望客户端下载时以指定文件名显示。

l 希望某文件直接在浏览器上显示而不是弹出文件下载对话框。

对于上面的需求,使用Content-Disposition属性就可以解决。下面是代码示例:

Response.AddHeader(“Content-disposition”, “attachment;filename=” + fileName)。

//Content-disposition为属性名。

//attachment表示以附件方式下载。如果要在页面中打开,则改为inline。

//filename如果为中文,则会出现乱码。解决办法有两种:

//1、使用fileName = new String(fileName.getBytes(), “ISO8859-1”)语句

//2、使用fileName = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8)语句

在这里插入图片描述

在这里插入图片描述

Response.Write是输出字节流,用于输出文字信息,Write,直接在屏幕上输出
而WriteFile尽管也是输出字节流,但是这个字节流是在服务器内部直接输出的,在客户端是不可见的,用于输出文件流,就是下载文件到客户端,客户端通过一定的模式去获取这个流,就得到了一个文件

不同浏览器有所差异,IE如下在这里插入图片描述
谷歌如下
在这里插入图片描述
在这里插入图片描述
理解HSSFWorkbook的几种对象:
HSSFWorkbook:excel的工作簿
HSSFSheet:excel的工作表
HSSFRow:excel的行
HSSFCell:excel的单元格
HSSFFont:excel字体
HSSFDataFormat:日期格式
HSSFHeader:sheet头
样式:
HSSFCellStyle:单元格样式
一个Excel的文件对应一个工作簿(HSSFWorkbook),一个工作簿可以有多个工作表(我们通常看到的Sheet0、Sheet1)(HSSFSheet)组成,一个工作表是由多行(HSSFRow)组成,一行又是由多个单元格(HSSFCell)组成。

context.Response.ContentType = “application/excel”;
string fileName = HttpUtility.UrlEncode(“动态数据.xls”);
context.Response.AddHeader(“content-disposition”, “attachment;filename=”+fileName);
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet(“sheetT”);
int columns = 0;
//填充表头
HSSFRow dataRow = (HSSFRow)sheet.CreateRow(0);

            dataRow.CreateCell(columns).SetCellValue("xxx");
            sheet.SetColumnWidth((short)columns, (short)4000);
            columns++;
            dataRow = (HSSFRow)sheet.CreateRow(1);
            //ID                
            dataRow.CreateCell(0).SetCellValue("ID");
            //
            dataRow.CreateCell(1).SetCellValue("客户名称 ");
            dataRow.CreateCell(2).SetCellValue("xxxxxxxx");  
       
        workbook.Write(context.Response.OutputStream);
        workbook = null;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值