用内存stream从URL中读取Excel

我正在上传一个Excel文件到Azure,我正在关注这个 URL。 现在我必须阅读这个excel文件的URL(我不想下载它)。 我正在这样做

var webRequest = HttpWebRequest.Create("url_of_excel_in_Azure") as HttpWebRequest; var webResponse = webRequest.GetResponse(); using (var webResponseStream = webResponse.GetResponseStream()) using (var memoryStream = new MemoryStream()) { webResponseStream.CopyTo(memoryStream); using (var excelPackage = new ExcelPackage(memoryStream)) { var value = excelPackage.Workbook.Worksheets.First().Cells[1, 1].Value; } } 

我有一个特定的格式为Excel,即它将只有4列,但多行,从上面的代码,我可以访问第一行的第一列值,我如何应用循环这些单元格读取4列中的所有行。 如果我写

  excelPackage.Workbook.Worksheets.First().Cells.Count() 

这是给我的所有列,包括哪些是空白的计数。

我可以跳过这个上传function,因为我只需要从张贴的文件创buildDataTable,如果有人可以build议如何从张贴的文件创builddatatable,而不需要上传它,这也会很好。 这是我的Excel的格式 高强

将回stream与memoryStream.Position = 0;

您可以使用下面的代码来读取所有行的内容并将其扔到数据表中。

 Excel.Worksheet worksheet = excelPackage.Workbook.Worksheets.get_Item(1); int iRowCount = worksheet.UsedRange.Rows.Count; int iColCount = worksheet.UsedRange.Columns.Count; Excel.Range range; for (int iRow = 2; iRow <= iRowCount; iRow++) { for (int iCol = 1; iCol <= iColCount; iCol++) range = (Excel.Range)worksheet.Cells[iRow, iCol]; string content = range.Text.ToString(); }