ZipOutputStream 用法 小计

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 用法 小计的更多相关文章
- git常用命令及用法小计
git init 初始化一个本地git仓库repository git status 查看状态 git add <file> 将工作区修改加到暂存区(stage) git commit - ...
- pmap用法小计
By francis_hao Aug 4,2017 pmap-报告进程的内存映射. 概要 pmap [options] pid [...] 描述 pmap命令用来报告一个或多个进程的 ...
- sql小计汇总 rollup用法实例分析
这里介绍sql server2005里面的一个使用实例: ),city ),score int) GO 1. 只有一个汇总 select province as 省,sum(score) as 分数 ...
- SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计
表结构: CREATE TABLE [dbo].[Students]( ,) NOT NULL, ) NULL, [Sex] [int] NOT NULL, ) NULL, ) NULL, , ) N ...
- PB gird类型数据窗口 设置分组、分组小计、合计
今天遇到一个需求,gird表格数据如下: 部门 类型 数据 A 类型1 1 A 类型2 2 B 类型1 3 B 类型2 4 合计 10 实际需要显示的结果为: 部门 ...
- 简单的angular购物车商品小计
<!DOCTYPE html> <html lang="en" ng-app="shopApp"> <head> <m ...
- C#给DataTable添加序号、C#给DataTable添加合计、小计
/// <summary> /// 给DataTable添加序号 /// </summary> /// <param name= ...
- SAP ALV中同一列的不同行显示不同的小数位,并能够总计,小计
物料数量字段,根据物料类型的不同,来显示不同的小数位:要求有点苛刻: 首先,要能够总计和小计的话,这一列的字段类型必须是数值类型. 这样的话,就不能通过截取的方式改变不同行的小数位. 以下是两种思路: ...
- 每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)
2013-8-20 1. SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL ...
随机推荐
- CMMI5
了解CMMI5是什么? 这种解决问题的思想很有用.
- Spring @注解详解(转)
1.@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访问) 4.@component (把普通pojo实例化到spr ...
- 【bzoj2225】[Spoj 2371]Another Longest Increasing CDQ分治+树状数组
题目描述 给定N个数对(xi, yi),求最长上升子序列的长度.上升序列定义为{(xi, yi)}满足对i<j有xi<xj且yi<yj. 样例输入 8 1 3 3 2 1 1 4 5 ...
- [luoguP2463] [SDOI2008]Sandy的卡片(后缀数组 + st表)
传送门 很容易想到,题目中的相同是指差分数组相同. 那么可以把差分数组连起来,中间加上一个没有出现过的且字典序小的数 双指针移动,用st表维护height数组中的最小值. 当然用单调队列应该也可以且更 ...
- 刷题总结——ball(ssoj)
题目: 题目背景 SOURCE:NOIP2015-SHY-9 题目描述 Alice 与 Bob 在玩游戏.他们一共玩了 t 轮游戏.游戏中,他们分别获得了 n 个和 m 个小球.每个球上有一个分数.每 ...
- HDU1071 The area
Ignatius bought a land last week, but he didn't know the area of the land because the land is enclos ...
- 【NOIP2015】子串(字符串DP)
题意:有AB两个字符串,用A中连续的K串匹配B全串,问不同的方案总数 n<=1000,m<=200,k<=m 思路:设dp[k,i,j]为用k串 A中前i个字符匹配B中前j个字符的方 ...
- ajax操作提交整个表单内容
1 2 3 4 5 6 7 8 9 10 11 12 13 $.ajax({ cache: true, type: "POST ...
- LeetCode OJ——Convert Sorted Array to Binary Search Tree
http://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 将一个升序的数组转换成 height balan ...
- 洛谷—— P1873 砍树
https://www.luogu.org/problemnew/show/P1873 题目描述 伐木工人米尔科需要砍倒M米长的木材.这是一个对米尔科来说很容易的工作,因为他有一个漂亮的新伐木机,可以 ...