forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			20 lines
		
	
	
		
			729 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			729 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import { Controller, Logger, Post, UploadedFile, UseInterceptors } from '@nestjs/common';
							 | 
						||
| 
								 | 
							
								import { FileInterceptor } from '@nestjs/platform-express';
							 | 
						||
| 
								 | 
							
								import { readFile, utils } from 'xlsx';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Controller('sheetjs')
							 | 
						||
| 
								 | 
							
								export class SheetjsController {
							 | 
						||
| 
								 | 
							
								  private readonly logger = new Logger(SheetjsController.name);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @Post('upload-xlsx-file')
							 | 
						||
| 
								 | 
							
								  @UseInterceptors(FileInterceptor('file'))
							 | 
						||
| 
								 | 
							
								  async uploadXlsxFile(@UploadedFile() file: Express.Multer.File) {
							 | 
						||
| 
								 | 
							
								    // Open the uploaded XLSX file and perform SheetJS operations
							 | 
						||
| 
								 | 
							
								    const workbook = readFile(file.path);
							 | 
						||
| 
								 | 
							
								    const firstSheet = workbook.Sheets[workbook.SheetNames[0]];
							 | 
						||
| 
								 | 
							
								    const output = utils.sheet_to_csv(firstSheet);
							 | 
						||
| 
								 | 
							
								    this.logger.log(output);
							 | 
						||
| 
								 | 
							
								    return output;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |