ZipOutputStream s = new ZipOutputStream(File.Create(ZipedFile));

构造函数之后

文件就已经创建出来了 只是 0kb

s.Write(buffer, 0, buffer.Length);    内容写进去了  写到服务器里面了  还设置了密码

最后 return 出来

服务器上还是有

public FileResult ExcelPrint(string bgrq, string endrq, string jijubianhao, string customerName, string status, string numMin, string numMax)
        {
            var user = _isysUserService.GetById(_userInfo.UserId);
            int? _numMin = string.IsNullOrEmpty(numMin) ? null : (int?)int.Parse(numMin);
            int? _numMax = string.IsNullOrEmpty(numMax) ? null : (int?)int.Parse(numMax);
            DateTime? _BgRq = string.IsNullOrEmpty(bgrq) ? null : (DateTime?)Convert.ToDateTime(bgrq);
            DateTime? _EndRq = string.IsNullOrEmpty(endrq) ? null : (DateTime?)Convert.ToDateTime(endrq);
            int pagecnt, thresholdCount;
            List<VMSelectItem> list = _IAtmAtmService.GetDataList(_BgRq, _EndRq, jijubianhao, customerName, status, , , out pagecnt, "", "", out thresholdCount, _numMin, _numMax, "export");

            string[] titles = { "Atm ID", "Location Name", "Customer", "Old Password", "Current Password", "Change By", "Change Time" };
            string[] props = { "One", "BeiZhu", "Remark", "Three", "Two", "UserName", "banci" };
            List<PorpTitle> ptlist = new List<PorpTitle>();

            string _BranchCode = _ISysProjectService.GetProjectNameById(_userInfo.ProjectId);
            string title = "ATM Combination Code-" + _BranchCode + "           Export by: " + user.UserName;
            DateTime dt = DateTime.Now;
            string dateTime = dt.ToString("yyMMdd");//yyMMddHHmmssfff
            string dateTimess = dt.ToString("yyMMddHHmmssfff");//yyMMddHHmmssfff      

            //MemoryStream ms = NpoiToExcel.ListToExcel(list, title, titles, props, ptlist);
            //ms.Seek(0, SeekOrigin.Begin);
            //string fileName = "ATM Combination Code_" + _BranchCode + dateTime + ".xls";
            //return File(ms, "application/vnd.ms-excel", fileName);

            string pass = "COMBI00";
            var syspro = _ISysProjectService.GetById(_userInfo.ProjectId);
            pass = syspro == null ? pass : "COMBI" + syspro.Code;
            string outfileName = "ATM Combination Code_" + _BranchCode + dateTime + ".xls";
            string fileName = "ATM Combination Code_" + _BranchCode + dateTimess + ".zip";
            string fileNameout = "ATM Combination Code_" + _BranchCode + dateTime + ".zip";
            MemoryStream ms = this.ListToExcel2("CC.xls", list, title, titles, props, ptlist);    // ms 是流内容   内存的流 已写入过内容
            string strpath = Server.MapPath("/Upload/Combination/" + fileName);  // 保存路径
            Common.ZipUtil.ZipFileMain(ms.ToArray(), strpath, pass, outfileName);  // 保存位置名字(zip)   密码   zip中内容文件名称
            return File(strpath, "application/octet-stream", fileNameout);   // 返回
        }
public static void ZipFileMain(byte[] buffer, string ZipedFile, string password,string outname)
        {
            ZipOutputStream s = new ZipOutputStream(File.Create(ZipedFile));  // 构造出来 zip就创建好了 0kb
            s.SetLevel(); // 0 - store only to 9 - means best compression
            s.Password = password;  // 密码
            //打开压缩文件
            //FileStream fs = File.OpenRead(FileToZip);
            //byte[] buffer = new byte[fs.Length];
            //fs.Read(buffer, 0, buffer.Length);

            //Array arr = FileToZip.Split('\\');
            //string le = arr.GetValue(arr.Length - 1).ToString();
            ZipEntry entry = new ZipEntry(outname);   // outname 内容名称
            entry.DateTime = DateTime.Now;
            entry.Size = buffer.Length;  // 内容大小
            s.PutNextEntry(entry);//编写新的ZIP文件条目
            s.Write(buffer, , buffer.Length); //写出 这句就写出来了
            s.Finish();
            s.Close();
            //Stream output = (Stream)s;
            //return output;
        }
public MemoryStream ListToExcel2<T>(string tmpnm, List<T> data, string strHeaderText, string[] titles, string[] props = null, List<PorpTitle> ptlist = null)
        {
            ////
            string configurl = System.Configuration.ConfigurationSettings.AppSettings["TempletsPath"].ToString();
            string FileFullPath = Server.MapPath(configurl) + tmpnm;

            if (!System.IO.File.Exists(FileFullPath))
            {
                return null;
            }

            HSSFWorkbook workbook = new HSSFWorkbook();
            string pass = "COMBI00";
            var syspro = _ISysProjectService.GetById(_userInfo.ProjectId);
            pass = syspro == null ? pass : "COMBI" + syspro.Code;

            using (FileStream file = new FileStream(FileFullPath, FileMode.Open, FileAccess.Read))
            {
                //NPOIHelper.ExcelPasswork(workbook, _ISysProjectService.GetProjectNameById(_userInfo.ProjectId));
                NPOI.HSSF.Record.Crypto.Biff8EncryptionKey.CurrentUserPassword = ";
                workbook = (HSSFWorkbook)WorkbookFactory.Create(file);
                //workbook.WriteProtectWorkbook("123456", "");//设置新密码
                //NPOIHelper.ExcelPasswork(workbook, _ISysProjectService.GetProjectNameById(_userInfo.ProjectId));
                workbook.WriteProtectWorkbook("", "");//设置密码
            }

            HSSFSheet sheet = (HSSFSheet)workbook.GetSheetAt();
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));

            ;
             * ;
            #region 基础数据定义
            HSSFCellStyle cellstyle = (HSSFCellStyle)workbook.CreateCellStyle();
            cellstyle.BorderBottom = (BorderStyle)CellBorderType.THIN;
            cellstyle.BorderLeft = (BorderStyle)CellBorderType.THIN;
            cellstyle.BorderRight = (BorderStyle)CellBorderType.THIN;
            cellstyle.BorderTop = (BorderStyle)CellBorderType.THIN;
            cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER; // 居中
            cellstyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;
            #endregion

            #region 首行首列定义
            HSSFRow headerRow = (HSSFRow)sheet.CreateRow();
            //HSSFRow headerRow = (HSSFRow)workbook.GetSheetAt(0);
            headerRow.HeightInPoints = rowheight;//行高
            if (strHeaderText.Contains("ATM Combination Code"))
            {
                headerRow.CreateCell().SetCellValue("Export Date:" + DateTime.Today.Date.ToString("MM/dd/yyyy") + "     " + strHeaderText);
            }
            else
            {
                headerRow.CreateCell().SetCellValue(strHeaderText);
            }

            HSSFCellStyle hvstyleh = (HSSFCellStyle)workbook.CreateCellStyle();
            hvstyleh.BorderBottom = (BorderStyle)CellBorderType.THIN;
            hvstyleh.BorderLeft = (BorderStyle)CellBorderType.THIN;
            hvstyleh.BorderRight = (BorderStyle)CellBorderType.THIN;
            hvstyleh.BorderTop = (BorderStyle)CellBorderType.THIN;
            hvstyleh.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER; // 居中
            hvstyleh.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER; // 居中
            hvstyleh.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;
            HSSFFont fonth = (HSSFFont)workbook.CreateFont();
            fonth.FontHeightInPoints = ;
            fonth.Boldweight = ;
            hvstyleh.SetFont(fonth);
            CellRangeAddress m_region = , , , titles.Count() - );  //合并0列的n--n+2行
            sheet.AddMergedRegion(m_region);
            setcelltag(m_region, hvstyleh, sheet);
            headerRow.GetCell().CellStyle = hvstyleh;
            var day = DateTime.Now;
            ;
            #endregion

            #region sheet页的表头定义
            if (ptlist != null)
            {
                )
                {
                    rowIndex = ;
                    HSSFRow ttdataRow = (HSSFRow)sheet.CreateRow(rowIndex - );
                    ttdataRow.HeightInPoints = rowheight;//行高
                    foreach (PorpTitle title in ptlist)
                    {
                        HSSFCell ttCell = (HSSFCell)ttdataRow.CreateCell(title.Poss);
                        ttCell.SetCellValue(title.TitleNM);
                        if (title.Poss != title.Pose)
                        {
                            CellRangeAddress m_region1 = , , title.Poss, title.Pose);  //合并0列的n--n+2行
                            sheet.AddMergedRegion(m_region1);
                            setcelltag(m_region1, cellstyle, sheet);
                            ttCell.CellStyle = cellstyle;
                        }
                        else
                        {
                            ttCell.CellStyle = cellstyle;
                        }
                    }
                }
            }

            #endregion

            #region 表记录记录
            var jyzindex = rowIndex;

            #region 定义表头
            ;
            HSSFRow dataRow = (HSSFRow)sheet.CreateRow(jyzindex);
            dataRow.HeightInPoints = rowheight;//行高
            HSSFCell newCell;
            foreach (string prop in titles)
            {
                newCell = (HSSFCell)dataRow.CreateCell(cellcnt);
                newCell.SetCellValue(prop);
                newCell.CellStyle = cellstyle;
                sheet.SetColumnWidth(cellcnt, colheight);
                cellcnt++;
            }
            #endregion

            #region 定义表内容
            jyzindex++;
            foreach (T item in data)
            {
                dataRow = (HSSFRow)sheet.CreateRow(jyzindex);
                dataRow.HeightInPoints = rowheight;//行高
                cellcnt = ;

                if (props != null)
                {
                    foreach (string prop in props)
                    {
                        PropertyDescriptor prop1 = properties[prop];
                        var val = "";
                        try { val = ConvertHelper.ToStr(prop1.GetValue(item) ?? DBNull.Value); }
                        catch { }
                        newCell = (HSSFCell)dataRow.CreateCell(cellcnt);
                        newCell.SetCellValue(val);
                        newCell.CellStyle = cellstyle;
                        sheet.SetColumnWidth(cellcnt, colheight);
                        cellcnt++;
                    }
                }
                else
                {
                    foreach (PropertyDescriptor prop in properties)
                    {
                        var val = "";
                        try { val = ConvertHelper.ToStr(prop.GetValue(item) ?? DBNull.Value); }
                        catch { }
                        newCell = (HSSFCell)dataRow.CreateCell(cellcnt);
                        newCell.SetCellValue(val);
                        newCell.CellStyle = cellstyle;
                        sheet.SetColumnWidth(cellcnt, colheight);
                        cellcnt++;
                    }
                }
                jyzindex++;
            }
            //sheet.ProtectSheet("password");
            #endregion

            #endregion

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            workbook.Write(ms);
            return ms;
        }

ZipOutputStream 用法 小计的更多相关文章

  1. git常用命令及用法小计

    git init 初始化一个本地git仓库repository git status 查看状态 git add <file> 将工作区修改加到暂存区(stage) git commit - ...

  2. pmap用法小计

    By francis_hao    Aug 4,2017   pmap-报告进程的内存映射.   概要 pmap [options] pid [...]   描述 pmap命令用来报告一个或多个进程的 ...

  3. sql小计汇总 rollup用法实例分析

    这里介绍sql server2005里面的一个使用实例: ),city ),score int) GO 1. 只有一个汇总 select province as 省,sum(score) as 分数 ...

  4. SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计

    表结构: CREATE TABLE [dbo].[Students]( ,) NOT NULL, ) NULL, [Sex] [int] NOT NULL, ) NULL, ) NULL, , ) N ...

  5. PB gird类型数据窗口 设置分组、分组小计、合计

    今天遇到一个需求,gird表格数据如下:  部门  类型 数据   A  类型1  1  A  类型2  2  B  类型1  3  B  类型2  4   合计 10 实际需要显示的结果为:  部门 ...

  6. 简单的angular购物车商品小计

    <!DOCTYPE html> <html lang="en" ng-app="shopApp"> <head> <m ...

  7. C#给DataTable添加序号、C#给DataTable添加合计、小计

    /// <summary>        /// 给DataTable添加序号        /// </summary>        /// <param name= ...

  8. SAP ALV中同一列的不同行显示不同的小数位,并能够总计,小计

    物料数量字段,根据物料类型的不同,来显示不同的小数位:要求有点苛刻: 首先,要能够总计和小计的话,这一列的字段类型必须是数值类型. 这样的话,就不能通过截取的方式改变不同行的小数位. 以下是两种思路: ...

  9. 每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)

    2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL ...

随机推荐

  1. ACM-ICPC北京赛区2017网络同步赛

    E: Cats and Fish 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are many homeless cats in PKU campus. T ...

  2. API经济时代的思考(转载目的:为之后写API-first模式的生命周期治理做准备)

    原文地址:API经济时代的思考    感觉这篇博客还不错,个人赞同其大部分的内容,借鉴参考一下,懒得自己写了(关键是不一定能轻松写得更好,嘿嘿,偷懒啦) 接下来会写关于API经济的概念下,如何进行AP ...

  3. 异常详细信息: System.Data.SqlClient.SqlException: 用户 'NT AUTHORITY\IUSR' 登录失败解决办法

    最近在做.net项目,因为本人以前做java较多,所以对.net不熟悉,在项目完成后部署到IIS服务器上出现诸多问题,以上其中之一,若有时间,在更新其他问题的解决办法! 异常详细信息: System. ...

  4. 皮尔逊相关系数的计算(python代码版)

    from math import sqrt def multipl(a,b): sumofab=0.0 for i in range(len(a)): temp=a[i]*b[i] sumofab+= ...

  5. jenkins项目数据位置

    JENKINS_HOME: C:\Documents and Settings\AAA\.jenkins /root/.jenkins jenkins迁移只需要备份JENKINS_HOME的内容即可 ...

  6. touch event 存疑

    1.原声js与借用jquery输出来的事件列表却不一样 function touchPlay(e) { e.preventDefault(); console.log(e); } var screen ...

  7. 【BZOJ3524】Couriers(主席树)

    题意:给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. n,m≤5000 ...

  8. 【CF173B】Chamber of Secrets(二分图,最短路)

    题意:给你一个n*m的地图,现在有一束激光从左上角往右边射出,每遇到‘#’,你可以选择光线往四个方向射出,或者什么都不做,问最少需要多少个‘#’往四个方向射出才能使关系在n行往右边射出. 思路:将每一 ...

  9. Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Java手机游戏开发实例简明教程 (SunJava开发者认证程序员 郎锐)一、手机游戏编写基础1.手机游戏设计的基 ...

  10. vue.js源码学习分享(九)

    /* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);//获取arrayMethods的属性名称 /** * By defaul ...