如何从Windows Azure云服务中的Excel文件中读取数据?

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

当我在localhost上运行应用程序时,它可以正常工作,但是当我使用Windows Azure SDK模拟器(使用我的应用程序作为Webangular色)运行应用程序时,会出现以下错误:

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

我怎样才能解决这个问题(除了使用OpenXML)?

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

使用OpenXML无法读取Azure中的XLS文件。 因为对于那些文件格式,OpenXML依靠Microsoft Office Suite进行安装。 而且,Microsoft许可不允许您在Cloud Server VM上安装Office。 如果你想阅读这些文件格式,你必须find另一个不依赖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(); }