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