forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			22 lines
		
	
	
		
			875 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			22 lines
		
	
	
		
			875 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								// @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts"
							 | 
						||
| 
								 | 
							
								import { read, set_cptable } from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs';
							 | 
						||
| 
								 | 
							
								import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs';
							 | 
						||
| 
								 | 
							
								set_cptable(cptable);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import type { Request } from "https://deno.land/x/drash@v2.5.4/mod.ts";
							 | 
						||
| 
								 | 
							
								import { Types } from "https://deno.land/x/drash@v2.5.4/mod.ts";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Parse a workbook from an uploaded file
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This works with Deno Deploy (Drash body parser does not use temp files)
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * request is a Drash.Request object
							 | 
						||
| 
								 | 
							
								 * field is the name of the field to read
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export function parse_book_from_request(request: Request, field: string) {
							 | 
						||
| 
								 | 
							
								  const file = request.bodyParam<Types.BodyFile>(field);
							 | 
						||
| 
								 | 
							
								  if(!file) throw new Error(`Field ${field} is missing!`);
							 | 
						||
| 
								 | 
							
								  return read(file.content, { type: "buffer" });
							 | 
						||
| 
								 | 
							
								}
							 |