Reading from an excel file store in internal memory

Hi, I am trying to read data from an excel file that is stored in my internal memory Downloads folder. 


private async void filebtn_Clicked(object sender, EventArgs e)
        {
            var file = await CrossFilePicker.Current.PickFile();
            try
            {

                if (file != null)
                {
                    label1.Text = file.FilePath + "\n\n" + file.FileName;
                   var RepName = new ArrayList();
                    string sheetName = "SalesPerson";

                    var assembly = typeof(MainActivity).Assembly;
                    Stream stream = assembly.GetManifestResourceStream(file.FilePath);

                    using (ExcelEngine excelEngine = new ExcelEngine())
                    {
                        stream.Position = 0;
                        IWorkbook workbook = excelEngine.Excel.Workbooks.Open(stream);
                        IWorksheet worksheet = workbook.Worksheets[sheetName];
                        IRange usedRange = worksheet.UsedRange;
                        for (int i = 1; i <= usedRange.LastRow; i++)
                        {
                            label1.Text += worksheet[i, 1].DisplayText;
                         }
                }
            }
            catch(Exception ex)
            {
                Console.Write(ex.ToString());
            }
        }



But in this line:


Stream stream = assembly.GetManifestResourceStream(file.FilePath);


My stream object is always null. Why?







2 Replies

PK Prakash Kumar D Syncfusion Team September 6, 2018 05:07 PM UTC

 
Hi Amman, 
 
Thank you for contacting Syncfusion support. 
 
As the file selected from file picker is not embedded resource, hence the stream is null. So, it is recommended to read DataArray property of file picker as Memory stream and open it using XlsIO. Please refer below code to achieve the same. 
 
  MemoryStream fileStream = new MemoryStream(file.DataArray); 
  //Opens the workbook 
  IWorkbook workbook = excelEngine.Excel.Workbooks.Open(fileStream); 
 
 
Kindly try and let us know if this helps at your end. 
 
Regards, 
Prakash Kumar 



AM Amman September 6, 2018 05:20 PM UTC

Thanks!

Loader.
Up arrow icon