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