[英]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.