nodejs压缩和解压缩zip文件
发布于 2年前 作者 151263 4338 次浏览

https://github.com/sailnode/hzip nodejs压缩和解压缩zip文件 替换zip文件里面的内容等 我自己写的,实际项目中在用了,没问题 可以用来操作Excel2007 或者Excel2010 我的项目中是用它来导出Excel的 纯javascript写的

var fs = require("fs");
var zlib = require("zlib");
var Hzip = require("../hzip");
var hzip = new Hzip(fs.readFileSync("./test.zip"));
//替换或增加文件
hzip.updateEntry("testDir/test.txt",fs.readFileSync("./test.txt"),function(err,buffer){
    if(err) console.log(err);
    if(fs.existsSync("./test2.zip") === true) fs.unlinkSync("./test2.zip");
    fs.writeFileSync("./test2.zip",buffer);
    //解压文件
    var entry = hzip.getEntry("testDir/test.txt");
    zlib.inflateRaw(entry.cfile,function(err,buf){
        console.log(buf.toString());
    });
});
10 回复

非常不错,谢谢楼主。另外不知道有没有基于bytes数组的zip解压模块?例如用node下载一个zip,我希望不用保存到磁盘,直接读取zip内容并解包使用。谢谢。

你的仔细看一下我的例子,已经实现了你的需求了 fs.readFileSync(“./test.zip”)返回的就是Buffer类,就是bytes

能介绍一下导出excel是怎么写的么

请问你发的地址为什么是404呢?无法访问,有没有npm模块?

不好意思啊,我再给一个地址吧 https://gitcafe.com/sail/hzip

你用Excel2007以及以上的版本,新建立一个Excel,然后在上面随便写点东西, 然后改Excel的后缀名,从.xlxs改为.zip,然后再用好压解压开,里面会有很多xml文件, 一个个打开用Notepad++看一下,格式化美化一下xml,你就明白了 其中有一个shareString.xml文件里面是你刚刚输入进去的东西

google搜索一下 openXml

是这样,我自己用这个hzip模块加上ejs模块改造, 做了一个ejsExcel 有这样的功能: 一个随便用户怎么画出来的Excel模板,然后类似ejs那样,可以动态的在指定的地方填入数据, 也可以循环输出行,输出列, (当然,这是服务器端的模板) 我测试了一下性能,我的联想T510i的笔记本上,10秒钟之内可以导出2万行数据 已经在企业里面用起来了 如果你们对这个有兴趣,我就抽个时间把我的ejsExcel放出来,给大家试用用

@151263 听上去不错,放出来撒~

回到顶部