forked from sheetjs/sheetjs
		
	version bump 0.7.10: cleanup
- build bower.json (h/t @jjstewart, following the change from js-xls) - README clarification on !ref (fixes #82) - XLSX treat empty <v/> tags as empty cells (h/t @clarlars) - XLSX write !merges array (fixes #92)
This commit is contained in:
		
							parent
							
								
									c58477279e
								
							
						
					
					
						commit
						19f3a6ae76
					
				
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							| @ -74,8 +74,11 @@ coveralls: | ||||
| coveralls-spin: | ||||
| 	make coveralls & bash misc/spin.sh $$! | ||||
| 
 | ||||
| bower.json: misc/_bower.json package.json | ||||
| 	cat $< | sed 's/_VERSION_/'`grep version package.json | awk '{gsub(/[^0-9a-z\.-]/,"",$$2); print $$2}'`'/' > $@ | ||||
| 
 | ||||
| .PHONY: dist | ||||
| dist: dist-deps $(TARGET) | ||||
| dist: dist-deps $(TARGET) bower.json | ||||
| 	cp $(TARGET) dist/ | ||||
| 	cp LICENSE dist/ | ||||
| 	uglifyjs $(TARGET) -o dist/$(LIB).min.js --source-map dist/$(LIB).min.map --preamble "$$(head -n 1 bits/00_header.js)" | ||||
|  | ||||
| @ -306,6 +306,12 @@ Special worksheet keys (accessible as `worksheet[key]`, each starting with `!`): | ||||
|   writing a worksheet by hand, be sure to update the range.  For a longer | ||||
|   discussion, see <http://git.io/KIaNKQ> | ||||
| 
 | ||||
|   Functions that handle worksheets should test for the presence of `!ref` field. | ||||
|   If the `!ref` is omitted or is not a valid range, functions are free to treat | ||||
|   the sheet as empty or attempt to guess the range.  The standard utilities that | ||||
|   ship with this library treat sheets as empty (for example, the CSV output is an | ||||
|   empty string). | ||||
| 
 | ||||
|   When reading a worksheet with the `sheetRows` property set, the ref parameter | ||||
|   will use the restricted range.  The original range is set at `ws['!fullref']` | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										11
									
								
								bin/xlsx.njs
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										11
									
								
								bin/xlsx.njs
									
									
									
									
									
								
							| @ -35,6 +35,17 @@ program.on('--help', function() { | ||||
| 
 | ||||
| program.parse(process.argv); | ||||
| 
 | ||||
| /* see https://github.com/SheetJS/j/issues/4 */ | ||||
| if(process.version === 'v0.10.31') { | ||||
| 	var msgs = [ | ||||
| 		"node v0.10.31 is known to crash on OSX and Linux, refusing to proceed.", | ||||
| 		"see https://github.com/SheetJS/j/issues/4 for the relevant discussion.", | ||||
| 		"see https://github.com/joyent/node/issues/8208 for the relevant node issue" | ||||
| 	]; | ||||
| 	msgs.forEach(function(m) { console.error(m); }); | ||||
| 	process.exit(1); | ||||
| } | ||||
| 
 | ||||
| var filename, sheetname = ''; | ||||
| if(program.args[0]) { | ||||
| 	filename = program.args[0]; | ||||
|  | ||||
| @ -1 +1 @@ | ||||
| XLSX.version = '0.7.9'; | ||||
| XLSX.version = '0.7.10'; | ||||
|  | ||||
| @ -63,6 +63,12 @@ function parse_ws_xml(data, opts, rels) { | ||||
| 	return s; | ||||
| } | ||||
| 
 | ||||
| function write_ws_xml_merges(merges) { | ||||
| 	if(merges.length == 0) return ""; | ||||
| 	var o = '<mergeCells count="' + merges.length + '">'; | ||||
| 	for(var i = 0; i != merges.length; ++i) o += '<mergeCell ref="' + encode_range(merges[i]) + '"/>'; | ||||
| 	return o + '</mergeCells>'; | ||||
| } | ||||
| 
 | ||||
| function parse_ws_xml_hlinks(s, data, rels) { | ||||
| 	for(var i = 0; i != data.length; ++i) { | ||||
| @ -185,7 +191,7 @@ return function parse_ws_xml_data(sdata, s, opts, guess) { | ||||
| 			d = x.substr(i); | ||||
| 			p = {t:""}; | ||||
| 
 | ||||
| 			if((cref=d.match(match_v))!== null) p.v=unescapexml(cref[1]); | ||||
| 			if((cref=d.match(match_v))!== null && cref[1] !== '') p.v=unescapexml(cref[1]); | ||||
| 			if(opts.cellFormula && (cref=d.match(match_f))!== null) p.f=unescapexml(cref[1]); | ||||
| 
 | ||||
| 			/* SCHEMA IS ACTUALLY INCORRECT HERE.  IF A CELL HAS NO T, EMIT "" */ | ||||
| @ -271,6 +277,8 @@ function write_ws_xml(idx, opts, wb) { | ||||
| 	} | ||||
| 	if(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace("/>",">"); } | ||||
| 
 | ||||
| 	if(ws['!merges'] !== undefined && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges'])); | ||||
| 
 | ||||
| 	if(o.length>2) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace("/>",">"); } | ||||
| 	return o.join(""); | ||||
| } | ||||
|  | ||||
							
								
								
									
										19
									
								
								bower.json
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										19
									
								
								bower.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | ||||
| { | ||||
|   "name": "js-xlsx", | ||||
|   "homepage": "https://github.com/SheetJS/js-xlsx", | ||||
|   "main": "dist/xlsx.js", | ||||
|   "version": "0.7.10", | ||||
|   "ignore": [ | ||||
|     "bin", | ||||
|     "bits", | ||||
|     "misc", | ||||
|     "**/.*" | ||||
|   ], | ||||
|   "keywords": [ | ||||
|     "excel", | ||||
|     "xlsx", | ||||
|     "xlsm", | ||||
|     "xlsb", | ||||
|     "js-xlsx" | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										12
									
								
								dist/jszip.js
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										12
									
								
								dist/jszip.js
									
									
									
									
										vendored
									
									
								
							| @ -498,7 +498,7 @@ Usage: | ||||
| function JSZip(data, options) { | ||||
|     // if this constructor is used without `new`, it adds `new` before itself:
 | ||||
|     if(!(this instanceof JSZip)) return new JSZip(data, options); | ||||
|      | ||||
| 
 | ||||
|     // object containing the files :
 | ||||
|     // {
 | ||||
|     //   "folder/" : {...},
 | ||||
| @ -588,7 +588,7 @@ module.exports = function(data, options) { | ||||
| (function (Buffer){ | ||||
| 'use strict'; | ||||
| module.exports = function(data, encoding){ | ||||
|     return new Buffer(data, encoding);    | ||||
|     return new Buffer(data, encoding); | ||||
| }; | ||||
| module.exports.test = function(b){ | ||||
|     return Buffer.isBuffer(b); | ||||
| @ -898,7 +898,7 @@ var parentFolder = function (path) { | ||||
|  * Add a (sub) folder in the current folder. | ||||
|  * @private | ||||
|  * @param {string} name the folder's name | ||||
|  * @param {boolean=} [createFolders] If true, automatically create sub  | ||||
|  * @param {boolean=} [createFolders] If true, automatically create sub | ||||
|  *  folders. Defaults to false. | ||||
|  * @return {Object} the new folder. | ||||
|  */ | ||||
| @ -1357,7 +1357,7 @@ var out = { | ||||
|             default : // case "string" :
 | ||||
|                return zip; | ||||
|          } | ||||
|        | ||||
| 
 | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
| @ -5554,7 +5554,7 @@ function GZheader() { | ||||
|                        // but leave for few code modifications
 | ||||
| 
 | ||||
|   //
 | ||||
|   // Setup limits is not necessary because in js we should not preallocate memory 
 | ||||
|   // Setup limits is not necessary because in js we should not preallocate memory
 | ||||
|   // for inflate use constant limit in 65536 bytes
 | ||||
|   //
 | ||||
| 
 | ||||
| @ -8979,4 +8979,4 @@ function ZStream() { | ||||
| module.exports = ZStream; | ||||
| },{}]},{},[9]) | ||||
| (9) | ||||
| }); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										4
									
								
								dist/xlsx.core.min.js
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										4
									
								
								dist/xlsx.core.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/xlsx.core.min.map
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								dist/xlsx.core.min.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								dist/xlsx.full.min.js
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										4
									
								
								dist/xlsx.full.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/xlsx.full.min.map
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								dist/xlsx.full.min.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										12
									
								
								dist/xlsx.js
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										12
									
								
								dist/xlsx.js
									
									
									
									
										vendored
									
									
								
							| @ -3,7 +3,7 @@ | ||||
| /*jshint -W041 */ | ||||
| var XLSX = {}; | ||||
| (function(XLSX){ | ||||
| XLSX.version = '0.7.9'; | ||||
| XLSX.version = '0.7.10'; | ||||
| var current_codepage = 1252, current_cptable; | ||||
| if(typeof module !== "undefined" && typeof require !== 'undefined') { | ||||
| 	if(typeof cptable === 'undefined') cptable = require('./dist/cpexcel'); | ||||
| @ -2849,6 +2849,12 @@ function parse_ws_xml(data, opts, rels) { | ||||
| 	return s; | ||||
| } | ||||
| 
 | ||||
| function write_ws_xml_merges(merges) { | ||||
| 	if(merges.length == 0) return ""; | ||||
| 	var o = '<mergeCells count="' + merges.length + '">'; | ||||
| 	for(var i = 0; i != merges.length; ++i) o += '<mergeCell ref="' + encode_range(merges[i]) + '"/>'; | ||||
| 	return o + '</mergeCells>'; | ||||
| } | ||||
| 
 | ||||
| function parse_ws_xml_hlinks(s, data, rels) { | ||||
| 	for(var i = 0; i != data.length; ++i) { | ||||
| @ -2971,7 +2977,7 @@ return function parse_ws_xml_data(sdata, s, opts, guess) { | ||||
| 			d = x.substr(i); | ||||
| 			p = {t:""}; | ||||
| 
 | ||||
| 			if((cref=d.match(match_v))!== null) p.v=unescapexml(cref[1]); | ||||
| 			if((cref=d.match(match_v))!== null && cref[1] !== '') p.v=unescapexml(cref[1]); | ||||
| 			if(opts.cellFormula && (cref=d.match(match_f))!== null) p.f=unescapexml(cref[1]); | ||||
| 
 | ||||
| 			/* SCHEMA IS ACTUALLY INCORRECT HERE.  IF A CELL HAS NO T, EMIT "" */ | ||||
| @ -3057,6 +3063,8 @@ function write_ws_xml(idx, opts, wb) { | ||||
| 	} | ||||
| 	if(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace("/>",">"); } | ||||
| 
 | ||||
| 	if(ws['!merges'] !== undefined && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges'])); | ||||
| 
 | ||||
| 	if(o.length>2) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace("/>",">"); } | ||||
| 	return o.join(""); | ||||
| } | ||||
|  | ||||
							
								
								
									
										6
									
								
								dist/xlsx.min.js
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										6
									
								
								dist/xlsx.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/xlsx.min.map
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								dist/xlsx.min.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										19
									
								
								misc/_bower.json
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										19
									
								
								misc/_bower.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | ||||
| { | ||||
|   "name": "js-xlsx", | ||||
|   "homepage": "https://github.com/SheetJS/js-xlsx", | ||||
|   "main": "dist/xlsx.js", | ||||
|   "version": "_VERSION_", | ||||
|   "ignore": [ | ||||
|     "bin", | ||||
|     "bits", | ||||
|     "misc", | ||||
|     "**/.*" | ||||
|   ], | ||||
|   "keywords": [ | ||||
|     "excel", | ||||
|     "xlsx", | ||||
|     "xlsm", | ||||
|     "xlsb", | ||||
|     "js-xlsx" | ||||
|   ] | ||||
| } | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
| 	"name": "xlsx", | ||||
| 	"version": "0.7.9", | ||||
| 	"version": "0.7.10", | ||||
| 	"author": "sheetjs", | ||||
| 	"description": "Excel 2007+ spreadsheet (XLSB/XLSX/XLSM) parser and writer", | ||||
| 	"keywords": [ "excel", "xlsx", "xlsb", "xlsm", "office", "spreadsheet" ], | ||||
|  | ||||
							
								
								
									
										12
									
								
								test.js
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										12
									
								
								test.js
									
									
									
									
									
								
							| @ -653,6 +653,18 @@ describe('roundtrip features', function() { | ||||
| 			}); }); | ||||
| 		}); | ||||
| 	}); | ||||
| 
 | ||||
| 	describe('should preserve features', function() { | ||||
| 		it('merge cells', function() { | ||||
| 			var wb1 = X.readFile(paths.mc1); | ||||
| 			var wb2 = X.read(X.write(wb1, {type:'binary'}), {type:'binary'}); | ||||
| 			var m1 = wb1.Sheets.Merge['!merges'].map(X.utils.encode_range); | ||||
| 			var m2 = wb2.Sheets.Merge['!merges'].map(X.utils.encode_range); | ||||
| 			assert.equal(m1.length, m2.length); | ||||
| 			for(var i = 0; i < m1.length; ++i) assert.equal(m1[i], m2[i]); | ||||
| 		}); | ||||
| 	}); | ||||
| 
 | ||||
| 	/* the XLSJS require should not cause the test suite to fail */ | ||||
| 	var XLSJS; | ||||
| 	try { | ||||
|  | ||||
| @ -1 +1 @@ | ||||
| Subproject commit c126cabd50c9056205ce8762f851f5c3dbe33910 | ||||
| Subproject commit 5308987eaeb01103964363cdc745b8340795d63c | ||||
| @ -13,6 +13,7 @@ hyperlink_stress_test_2011.xlsb | ||||
| merge_cells.xlsb | ||||
| named_ranges_2011.xlsb | ||||
| number_format.xlsb | ||||
| number_format_entities.xlsb | ||||
| number_format_russian.xlsb | ||||
| pivot_table_named_range.xlsb | ||||
| pivot_table_test.xlsb | ||||
| @ -80,6 +81,7 @@ apachepoi_51710.xlsx | ||||
| apachepoi_51850.xlsx | ||||
| apachepoi_51963.xlsx | ||||
| apachepoi_52348.xlsx | ||||
| apachepoi_52575_main.xlsx | ||||
| apachepoi_52716.xlsx | ||||
| apachepoi_53101.xlsx | ||||
| apachepoi_53282.xlsx | ||||
| @ -97,6 +99,8 @@ apachepoi_54288.xlsx | ||||
| apachepoi_54436.xlsx | ||||
| apachepoi_54524.xlsx | ||||
| apachepoi_54607.xlsx | ||||
| apachepoi_54764-2.xlsx | ||||
| apachepoi_54764.xlsx | ||||
| apachepoi_55640.xlsx | ||||
| apachepoi_55745.xlsx | ||||
| apachepoi_55850.xlsx | ||||
| @ -113,6 +117,7 @@ apachepoi_56274.xlsx | ||||
| apachepoi_56278.xlsx | ||||
| apachepoi_56315.xlsx | ||||
| apachepoi_56420.xlsx | ||||
| apachepoi_56502.xlsx | ||||
| apachepoi_56514.xlsx | ||||
| apachepoi_56688_1.xlsx | ||||
| apachepoi_56688_2.xlsx | ||||
| @ -232,6 +237,7 @@ libreoffice_calc_xlsx-import_shared-formula_1.xlsx | ||||
| merge_cells.xlsx | ||||
| mixed_sheets.xlsx | ||||
| named_ranges_2011.xlsx | ||||
| number_format_entities.xlsx | ||||
| openpyxl_g_NameWithValueBug.xlsx | ||||
| openpyxl_g_empty-no-string.xlsx | ||||
| openpyxl_g_empty-with-styles.xlsx | ||||
| @ -320,5 +326,6 @@ apachepoi_47089.xlsm | ||||
| apachepoi_ExcelWithAttachments.xlsm | ||||
| number_format.xlsm | ||||
| number_format_russian.xlsm | ||||
| numfmt_1_russian.xlsm | ||||
| openpyxl_r_vba-test.xlsm | ||||
| pivot_table_test.xlsm | ||||
|  | ||||
							
								
								
									
										12
									
								
								xlsx.js
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										12
									
								
								xlsx.js
									
									
									
									
									
								
							| @ -3,7 +3,7 @@ | ||||
| /*jshint -W041 */ | ||||
| var XLSX = {}; | ||||
| (function(XLSX){ | ||||
| XLSX.version = '0.7.9'; | ||||
| XLSX.version = '0.7.10'; | ||||
| var current_codepage = 1252, current_cptable; | ||||
| if(typeof module !== "undefined" && typeof require !== 'undefined') { | ||||
| 	if(typeof cptable === 'undefined') cptable = require('./dist/cpexcel'); | ||||
| @ -2849,6 +2849,12 @@ function parse_ws_xml(data, opts, rels) { | ||||
| 	return s; | ||||
| } | ||||
| 
 | ||||
| function write_ws_xml_merges(merges) { | ||||
| 	if(merges.length == 0) return ""; | ||||
| 	var o = '<mergeCells count="' + merges.length + '">'; | ||||
| 	for(var i = 0; i != merges.length; ++i) o += '<mergeCell ref="' + encode_range(merges[i]) + '"/>'; | ||||
| 	return o + '</mergeCells>'; | ||||
| } | ||||
| 
 | ||||
| function parse_ws_xml_hlinks(s, data, rels) { | ||||
| 	for(var i = 0; i != data.length; ++i) { | ||||
| @ -2971,7 +2977,7 @@ return function parse_ws_xml_data(sdata, s, opts, guess) { | ||||
| 			d = x.substr(i); | ||||
| 			p = {t:""}; | ||||
| 
 | ||||
| 			if((cref=d.match(match_v))!== null) p.v=unescapexml(cref[1]); | ||||
| 			if((cref=d.match(match_v))!== null && cref[1] !== '') p.v=unescapexml(cref[1]); | ||||
| 			if(opts.cellFormula && (cref=d.match(match_f))!== null) p.f=unescapexml(cref[1]); | ||||
| 
 | ||||
| 			/* SCHEMA IS ACTUALLY INCORRECT HERE.  IF A CELL HAS NO T, EMIT "" */ | ||||
| @ -3057,6 +3063,8 @@ function write_ws_xml(idx, opts, wb) { | ||||
| 	} | ||||
| 	if(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace("/>",">"); } | ||||
| 
 | ||||
| 	if(ws['!merges'] !== undefined && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges'])); | ||||
| 
 | ||||
| 	if(o.length>2) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace("/>",">"); } | ||||
| 	return o.join(""); | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user