|  | @@ -0,0 +1,65 @@
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * Created by Tony on 2017/3/31.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +var test = require('tape');
 | 
	
		
			
				|  |  | +var JSZip = require("jszip");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +var fs = require('fs');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +test('test zip excel files: ', function (t) {
 | 
	
		
			
				|  |  | +    //rptUtil.setReportDefaultCache();
 | 
	
		
			
				|  |  | +    var file = '[Content_Types].xml';
 | 
	
		
			
				|  |  | +    var data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/[Content_Types].xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    var zip = new JSZip();
 | 
	
		
			
				|  |  | +    zip.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var zip_rels = zip.folder('_rels');
 | 
	
		
			
				|  |  | +    file = '.rels';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/_rels/.rels', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_rels.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var zip_docProps = zip.folder('docProps');
 | 
	
		
			
				|  |  | +    file = 'app.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/docProps/app.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_docProps.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +    file = 'core.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/docProps/core.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_docProps.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var zip_xl = zip.folder('xl');
 | 
	
		
			
				|  |  | +    file = 'sharedStrings.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/sharedStrings.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_xl.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +    file = 'styles.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/styles.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_xl.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +    file = 'workbook.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/workbook.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_xl.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var zip_rels2 = zip_xl.folder('_rels');
 | 
	
		
			
				|  |  | +    file = 'workbook.xml.rels';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/_rels/workbook.xml.rels', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_rels2.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +    var zip_theme = zip_xl.folder('theme');
 | 
	
		
			
				|  |  | +    file = 'theme1.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/theme/theme1.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_theme.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var zip_worksheets = zip_xl.folder('worksheets');
 | 
	
		
			
				|  |  | +    file = 'sheet1.xml';
 | 
	
		
			
				|  |  | +    data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/worksheets/sheet1.xml', 'utf8', 'r');
 | 
	
		
			
				|  |  | +    zip_worksheets.file(file, data, {compression: 'DEFLATE'});
 | 
	
		
			
				|  |  | +    //sheet1.xml
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    zip.generateNodeStream({type:'nodebuffer',streamFiles:true})
 | 
	
		
			
				|  |  | +        .pipe(fs.createWriteStream('../../../tmp/outExcel.xlsx'))
 | 
	
		
			
				|  |  | +        .on('finish', function () {
 | 
	
		
			
				|  |  | +            // JSZip generates a readable stream with a "end" event,
 | 
	
		
			
				|  |  | +            // but is piped here in a writable stream which emits a "finish" event.
 | 
	
		
			
				|  |  | +            console.log("outExcel.xlsx was written.");
 | 
	
		
			
				|  |  | +            t.pass('just pass for excel(xlsx) output!');
 | 
	
		
			
				|  |  | +            t.end();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +});
 |