添加头信息,为"文件下载/另存为"对话框指定默认文件名.........................
2012-04-06 11:31
323 查看
string path
= Server.MapPath(this.xlfile.Text+".xls");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileInfo file
= new System.IO.FileInfo(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.Clear();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.Charset="GB2312";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.ContentEncoding=System.Text.Encoding.UTF8;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.AddHeader("Content-Disposition",
"attachment; filename="
+ Server.UrlEncode(file.Name));
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.AddHeader("Content-Length",
file.Length.ToString());
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 指定返回的是一个不能被客户端读取的流,必须被下载
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.ContentType
= "application/ms-excel";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 把文件流发送到客户端
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.WriteFile(file.FullName);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 停止页面的执行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.End();
经常要导出一些XLS文件,给财务下载,用NPOI,将DataTalbe 转换成xls,再添加页头下载。
自己写了个方法,要引用NPOI的命名空间哦。
using NPOI.SS.UserModel;//引用NPOI
using NPOI.HSSF.UserModel;
= Server.MapPath(this.xlfile.Text+".xls");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileInfo file
= new System.IO.FileInfo(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.Clear();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.Charset="GB2312";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.ContentEncoding=System.Text.Encoding.UTF8;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.AddHeader("Content-Disposition",
"attachment; filename="
+ Server.UrlEncode(file.Name));
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.AddHeader("Content-Length",
file.Length.ToString());
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 指定返回的是一个不能被客户端读取的流,必须被下载
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.ContentType
= "application/ms-excel";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 把文件流发送到客户端
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.WriteFile(file.FullName);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 停止页面的执行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.End();
经常要导出一些XLS文件,给财务下载,用NPOI,将DataTalbe 转换成xls,再添加页头下载。
自己写了个方法,要引用NPOI的命名空间哦。
using NPOI.SS.UserModel;//引用NPOI
using NPOI.HSSF.UserModel;
public void Import(DataTable dt, string filename) { //创建空白文档 IWorkbook workbook = new HSSFWorkbook(); //创建标准三页 ISheet sheet1 = workbook.CreateSheet("sheet1"); ISheet sheet2 = workbook.CreateSheet("sheet2"); ISheet sheet3 = workbook.CreateSheet("sheet3"); IRow headrow = sheet1.CreateRow(0);//创建第一行 //将DataTable的列写入第一行 foreach (DataColumn column in dt.Columns) { //column.Oradinal,列的位置,column.ColumnName,列名 headrow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);//写入 } //再写入记录值 IRow row; for (int i = 0; i < dt.Rows.Count; i++) { row = sheet1.CreateRow(i + 1); for (int j = 0; j < dt.Columns.Count; j++) { row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());//dataTable和EXCEL差不多都是一个二维数组一样的. } } string filename1 = HttpContext.Current.Server.MapPath(filename); using (FileStream file = new FileStream(filename1, FileMode.Create)) { workbook.Write(file);//写入 file.Dispose(); } }
相关文章推荐
- "make (e=2): 系统找不到指定的文件"的原因
- 为什么下载文件文件名太长就会被截取,但是用<a href="">就不会有文件名超长的问题?!
- VC6.0向工程中添加文件出错“"0x5003eaed"指令引用的"0x00000000"内存”
- "无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开"解决办法
- 将一个文件作为下载的形式打开【下载文件】,添加报文头context.Response.AddHeader("Content-disposition", "attachment; filename="
- Tip:如何指定浏览器下载并保存动态生成的数据时对话框里的默认文件名
- "未能载入文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件"的解决方式
- Struts2 通过&quot;流&quot;下载文件时显示中文文件名
- MFC多文档MDI_"打开文件"默认后缀名修改,根据需要添加
- 系统找不到指定的文件。 Project : error PRJ0019: 工具从"正在执行生成后事件..."
- <input type="file" />浏览时只显示指定文件类型
- "未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件"的解决方案
- VC6.0向工程中添加文件和打开文件出错“"0x5003eaed"指令引用的"0x00000000"内存”解
- "未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件"的解决方案
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- 附加数据库出现"所指定的文件不是有效的SQL Server数据库文件"
- "无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开"在VC中解决办法
- vc6.0无法使用“添加到工程”或者"打开文件"解决方法
- <input type="file" />浏览时只显示指定文件类型
- windows"无法删除****,找不到指定文件,请确定指定的路径及文件名是否正确"的解决