Azure逻辑应用程序可以从存储帐户读取excel文件吗?



我有一个excel电子表格驻留在azure存储帐户的容器中。

我可以使用Azure逻辑应用程序的"获取Blob内容";访问文件。但我找不到任何文档讨论从blob存储中实际读取Azure逻辑应用程序中的文件。请注意,有用于访问OneDrive或Office365中的Excel文件的连接器,但不能从存储帐户容器访问。

尽管我进行了激烈的搜索,但我没有在微软文档或其他地方找到任何关于这个用例的讨论。如有任何连结,不胜感激。

从Blob存储读取/搜索Azure逻辑应用程序中的excel文件的最佳方法是什么?

您可以将Azure Function添加到工作流中,并轻松读取电子表格的内容:

public class ExcelFileContentExtractorService : IExcelFileContentExtractorService
{
    public ExcelFileRawDataModel GetFileContent(Stream fileStream)
    {
        IDictionary<string, string> cellValues = new Dictionary<string, string>();
        IWorkbook workbook = WorkbookFactory.Create(fileStream);
        ISheet reportSheet = workbook.GetSheetAt(0);
        if (reportSheet != null)
        {
            int rowCount = reportSheet.LastRowNum + 1;
            for (int i = 0; i < rowCount; i++)
            {
                IRow row = reportSheet.GetRow(i);
                if (row != null)
                {
                    foreach (var cell in row.Cells)
                    {
                        var cellValue = cell.GetFormattedCellValue();
                        if (!string.IsNullOrEmpty(cellValue))
                        {
                            cellValues.Add(cell.Address.FormatAsString(), cellValue);
                        }
                    }
                }
            }
        }
        return new ExcelFileRawDataModel()
        {
            Id = cellValues["A6"],
            CarBrand = cellValues["B6"],
            CarModel = cellValues["C6"],
            CarPrice = decimal.Parse(cellValues["D6"]),
            CarAvailability = int.Parse(cellValues["E6"])
        };
    }
}

来源:https://daniel-krzyczkowski.github.io/Extract-Excel-file-content-with-Azure-Logic-Apps-and-Azure-Functions/

我将在这里添加我所学到的。

尽管在撰写本文时本机支持从OneDrive和Sharepoint读取excel文件,但微软产品经理不知怎的忽略了Azure客户可能希望使用Azure工具(如Logic Apps)从Azure(存储帐户blob)中读取其内容。

在编写本文时,唯一的解决方案是创建一个Azure函数来生成SAS令牌并读取blob。

因此,我将Thiago的回答标记为正确。

我试着用CSV做同样的事情,没有取得很大进展。在我的经验中,尝试解析文件内容是很笨拙的。有一些用于逻辑应用程序的第三方插件(连接器),但我不愿意使用它们,因为我相信数据是作为处理的一部分发送到第三方站点的。如果您的数据不是特别敏感,您可以尝试使用这些连接器。

相关内容

  • 没有找到相关文章

最新更新