forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using System;
							 | 
						||
| 
								 | 
							
								using System.Threading.Tasks;
							 | 
						||
| 
								 | 
							
								using Windows.Security.Cryptography;
							 | 
						||
| 
								 | 
							
								using Windows.Storage;
							 | 
						||
| 
								 | 
							
								using Windows.Storage.Pickers;
							 | 
						||
| 
								 | 
							
								using Microsoft.ReactNative.Managed;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace SheetJSWin {
							 | 
						||
| 
								 | 
							
								  [ReactModule]
							 | 
						||
| 
								 | 
							
								  class DocumentPicker {
							 | 
						||
| 
								 | 
							
								    private ReactContext context;
							 | 
						||
| 
								 | 
							
								    [ReactInitializer]
							 | 
						||
| 
								 | 
							
								    public void Initialize(ReactContext reactContext) { context = reactContext; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [ReactMethod("PickAndRead")]
							 | 
						||
| 
								 | 
							
								    public async void PickAndRead(IReactPromise<string> result) {
							 | 
						||
| 
								 | 
							
								      context.Handle.UIDispatcher.Post(async() => { try {
							 | 
						||
| 
								 | 
							
								        var picker = new FileOpenPicker();
							 | 
						||
| 
								 | 
							
								        picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
							 | 
						||
| 
								 | 
							
								        picker.FileTypeFilter.Add(".xlsx");
							 | 
						||
| 
								 | 
							
								        picker.FileTypeFilter.Add(".xls");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        var file = await picker.PickSingleFileAsync();
							 | 
						||
| 
								 | 
							
								        if(file == null) throw new Exception("File not found");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        var buf = await FileIO.ReadBufferAsync(file);
							 | 
						||
| 
								 | 
							
								        result.Resolve(CryptographicBuffer.EncodeToBase64String(buf));
							 | 
						||
| 
								 | 
							
								      } catch(Exception e) { result.Reject(new ReactError { Message = e.Message }); }});
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |