繁体   English   中英

如何从windows azure云服务中的excel文件中读取数据?

[英]How to read data from excel file in windows azure cloud service?

我有一个使用Visual Studio 2010构建并使用Windows Azure SDK的Web应用程序。 它要求用户上传Excel文件,然后将其数据读取到数据库。

当我在localhost上运行应用程序时,它运行得很好,但是当我使用Windows Azure SDK模拟器(使用我的应用程序作为Web角色)运行它时,它会出现以下错误:

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

我该如何解决这个问题(除了使用OpenXml)?

您显然不使用OpenXML,或使用代理通过Office COM对象进行读取的功能。 原因是您可能尝试读取Office 2003或更旧的文件格式(.XLS)。 OpenXML仅支持直接读取Office 2007或更新的格式(.XLSX)。

使用OpenXML无法在Azure中读取XLS文件。 因为对于那些文件格式,OpenXML依赖于Microsoft Office套件来安装。 Microsoft许可不允许您在云服务器VM上安装Office。 如果您想要阅读这些文件格式,您必须找到另一个不依赖于OleDB提供程序的第三方库。

要在Azure上使用OpenXML读取XSLX文件,请确保只需使用SpreadsheetDocument.Open打开文件,如:

  static void ReadExcelFileDOM(string fileName)
    {
        using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false))
        {
            WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
            WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
            SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
            string text;

            int rowCount= sheetData.Elements<Row>().Count();

            foreach (Row r in sheetData.Elements<Row>())
            {
                foreach (Cell c in r.Elements<Cell>())
                {
                    text = c.CellValue.Text;
                    Console.Write(text + " ");
                }
            }
            Console.WriteLine();
            Console.ReadKey();
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM