testZip.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * Created by Tony on 2017/3/31.
  3. */
  4. var test = require('tape');
  5. var JSZip = require("jszip");
  6. var fs = require('fs');
  7. test('test zip excel files: ', function (t) {
  8. //rptUtil.setReportDefaultCache();
  9. var file = '[Content_Types].xml';
  10. var data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/[Content_Types].xml', 'utf8', 'r');
  11. var zip = new JSZip();
  12. zip.file(file, data, {compression: 'DEFLATE'});
  13. var zip_rels = zip.folder('_rels');
  14. file = '.rels';
  15. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/_rels/.rels', 'utf8', 'r');
  16. zip_rels.file(file, data, {compression: 'DEFLATE'});
  17. var zip_docProps = zip.folder('docProps');
  18. file = 'app.xml';
  19. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/docProps/app.xml', 'utf8', 'r');
  20. zip_docProps.file(file, data, {compression: 'DEFLATE'});
  21. file = 'core.xml';
  22. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/docProps/core.xml', 'utf8', 'r');
  23. zip_docProps.file(file, data, {compression: 'DEFLATE'});
  24. var zip_xl = zip.folder('xl');
  25. file = 'sharedStrings.xml';
  26. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/sharedStrings.xml', 'utf8', 'r');
  27. zip_xl.file(file, data, {compression: 'DEFLATE'});
  28. file = 'styles.xml';
  29. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/styles.xml', 'utf8', 'r');
  30. zip_xl.file(file, data, {compression: 'DEFLATE'});
  31. file = 'workbook.xml';
  32. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/workbook.xml', 'utf8', 'r');
  33. zip_xl.file(file, data, {compression: 'DEFLATE'});
  34. var zip_rels2 = zip_xl.folder('_rels');
  35. file = 'workbook.xml.rels';
  36. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/_rels/workbook.xml.rels', 'utf8', 'r');
  37. zip_rels2.file(file, data, {compression: 'DEFLATE'});
  38. var zip_theme = zip_xl.folder('theme');
  39. file = 'theme1.xml';
  40. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/theme/theme1.xml', 'utf8', 'r');
  41. zip_theme.file(file, data, {compression: 'DEFLATE'});
  42. var zip_worksheets = zip_xl.folder('worksheets');
  43. file = 'sheet1.xml';
  44. data = fs.readFileSync('../../../tmp/excel_test_raw_data/08-2/xl/worksheets/sheet1.xml', 'utf8', 'r');
  45. zip_worksheets.file(file, data, {compression: 'DEFLATE'});
  46. //sheet1.xml
  47. zip.generateNodeStream({type:'nodebuffer',streamFiles:true})
  48. .pipe(fs.createWriteStream('../../../tmp/outExcel.xlsx'))
  49. .on('finish', function () {
  50. // JSZip generates a readable stream with a "end" event,
  51. // but is piped here in a writable stream which emits a "finish" event.
  52. console.log("outExcel.xlsx was written.");
  53. t.pass('just pass for excel(xlsx) output!');
  54. t.end();
  55. }
  56. );
  57. });