C# 是否有任何方法可以读取通过Azure函数(版本2)中的表单数据接收的Excel文件

C# 是否有任何方法可以读取通过Azure函数(版本2)中的表单数据接收的Excel文件,c#,excel,asp.net-core,azure-functions,C#,Excel,Asp.net Core,Azure Functions,我需要开发azure函数逐行读取Excel文件,并将这些数据插入数据库 所以通过使用下面的代码,我能够从HTTP请求中获取文件 public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequest req, TraceWriter log) { var excel_file = req.Form.Files["file"];

我需要开发azure函数逐行读取Excel文件,并将这些数据插入数据库

所以通过使用下面的代码,我能够从HTTP请求中获取文件

public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequest req, TraceWriter log)
{

    var excel_file = req.Form.Files["file"];

    // read file and insert data and to database

    return excel_file != null
        ? (ActionResult)new OkObjectResult(excel_file)
        : new BadRequestObjectResult("err..");
}
我看到有很多方法可以用c#阅读excel表格,例如

Microsoft.Office.Interop.Excel

ExcelMapper

OLEDB..etc

但问题是这些都需要文件存储路径

问题是我是否可以在不在blob或其他位置写入的情况下读取这些excel文件

谢谢

您可以尝试使用流作为输入参数。假设
excel\u文件
是字节数组,您可以使用下面的代码:

using (var stream = new MemoryStream(excel_file))
{
    using (var reader = ExcelReaderFactory.CreateReader(stream))
    {
        while (reader.Read())
        {
            for (var i = 0; i < reader.FieldCount; i++)
            {
                var value = reader.GetValue(i)?.ToString();
            }
        }
    }
}
使用(var-stream=newmemoryStream(excel\u文件))
{
使用(var reader=ExcelReaderFactory.CreateReader(流))
{
while(reader.Read())
{
对于(变量i=0;i
如果有人得到这些System.NotSupportedException:没有数据可用于编码1252异常,请参阅