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" }); | ||
|  | } |