forked from sheetjs/sheetjs
		
	- parsexmltag and other hot functions now better optimized for v8 - monomorphic functions (different types -> different funcs) - more efficient decode_range implementation when source is trusted - regular expressions cached and simplified without breaking correctness - more efficient utf8 techniques when available - XLSX: large functions broken down into sub-functions (e.g. `parse_ws_xml`) - XLSB: avoid unnecessary binds - XLSB: assume no exotic codepage exists (no one else tries to write XLSB) - demo exposes rABS / worker / transferable options - more tests - jszip updated to 2.3.0 - SSF updated to 0.8.1 - codepage updated to 1.3.1
		
			
				
	
	
		
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* 18.7.3 CT_Comment */
 | |
| function parse_comments_xml(data, opts) {
 | |
| 	if(data.match(/<(?:\w+:)?comments *\/>/)) return [];
 | |
| 	var authors = [];
 | |
| 	var commentList = [];
 | |
| 	data.match(/<(?:\w+:)?authors>([^\u2603]*)<\/(?:\w+:)?authors>/)[1].split(/<\/\w*:?author>/).forEach(function(x) {
 | |
| 		if(x === "" || x.trim() === "") return;
 | |
| 		authors.push(x.match(/<(?:\w+:)?author[^>]*>(.*)/)[1]);
 | |
| 	});
 | |
| 	(data.match(/<(?:\w+:)?commentList>([^\u2603]*)<\/(?:\w+:)?commentList>/)||["",""])[1].split(/<\/\w*:?comment>/).forEach(function(x, index) {
 | |
| 		if(x === "" || x.trim() === "") return;
 | |
| 		var y = parsexmltag(x.match(/<(?:\w+:)?comment[^>]*>/)[0]);
 | |
| 		var comment = { author: y.authorId && authors[y.authorId] ? authors[y.authorId] : undefined, ref: y.ref, guid: y.guid };
 | |
| 		var cell = decode_cell(y.ref);
 | |
| 		if(opts.sheetRows && opts.sheetRows <= cell.r) return;
 | |
| 		var textMatch = x.match(/<text>([^\u2603]*)<\/text>/);
 | |
| 		if (!textMatch || !textMatch[1]) return; // a comment may contain an empty text tag.
 | |
| 		var rt = parse_si(textMatch[1]);
 | |
| 		comment.r = rt.r;
 | |
| 		comment.t = rt.t;
 | |
| 		if(opts.cellHTML) comment.h = rt.h;
 | |
| 		commentList.push(comment);
 | |
| 	});
 | |
| 	return commentList;
 | |
| }
 | |
| 
 | |
| function write_comments_xml(data, opts) { }
 |