forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# Angular 2+
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The library can be imported directly from TS code with:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```typescript
							 | 
						||
| 
								 | 
							
								import * as XLSX from 'xlsx';
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This demo uses an array of arrays as the core data structure.  The component
							 | 
						||
| 
								 | 
							
								template includes a file input element, a table that updates based on the data,
							 | 
						||
| 
								 | 
							
								and a button to export the data.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Switching between Angular versions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Modules that work with Angular 2 largely work as-is with Angular 4.  Switching
							 | 
						||
| 
								 | 
							
								between versions is mostly a matter of installing the correct version of the
							 | 
						||
| 
								 | 
							
								core and associated modules.  This demo includes a `package.json` for Angular 2
							 | 
						||
| 
								 | 
							
								and another `package.json` for Angular 4.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Switching to Angular 2 is as simple as:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ cp package.json-angular2 package.json
							 | 
						||
| 
								 | 
							
								$ npm install
							 | 
						||
| 
								 | 
							
								$ ng serve
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Switching to Angular 4 is as simple as:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ cp package.json-angular4 package.json
							 | 
						||
| 
								 | 
							
								$ npm install
							 | 
						||
| 
								 | 
							
								$ ng serve
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## XLSX Symlink
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In this tree, `node_modules/xlsx` is a symlink pointing back to the root.  This
							 | 
						||
| 
								 | 
							
								enables testing the development version of the library.  In order to use this
							 | 
						||
| 
								 | 
							
								demo in other applications, add the `xlsx` dependency:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install --save xlsx
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## SystemJS Configuration
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The default angular-cli configuration requires no additional configuration.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Some deployments use the SystemJS loader, which does require configuration.  The
							 | 
						||
| 
								 | 
							
								SystemJS example shows the required meta and map settings:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								SystemJS.config({
							 | 
						||
| 
								 | 
							
									meta: {
							 | 
						||
| 
								 | 
							
										'xlsx': {
							 | 
						||
| 
								 | 
							
											exports: 'XLSX' // <-- tell SystemJS to expose the XLSX variable
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									map: {
							 | 
						||
| 
								 | 
							
										'xlsx': 'xlsx.full.min.js', // <-- make sure xlsx.full.min.js is in same dir
							 | 
						||
| 
								 | 
							
										'fs': '',     // <--|
							 | 
						||
| 
								 | 
							
										'crypto': '', // <--| suppress native node modules
							 | 
						||
| 
								 | 
							
										'stream': ''  // <--|
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 |