【发布时间】:2016-03-04 23:52:43
【问题描述】:
我有一个要求
不使用 COM 互操作读取 Excel 文件。
找到了一些可能的方法来做同样的事情。
我使用 openxml 方法读取 .XLSX 文件,这对于 .XLS 文件将失败。 因此计划仅对 .XLS 文件使用 oledb 读取。
后来我在阅读Excel文件时阅读了一些关于Jet数据库引擎相关问题的文章, Jet 库不是为 64 位系统而设计的。
我正在 64 位计算机上开发应用程序,需要部署在 32 位服务器上。 以后会不会出问题?
是否也可以使用 Microsoft.ACE.OLEDB.12.0 来读取 .XLS 文件?
private string GetConnectionString(string filepath)
{
Dictionary<string, string> props = new Dictionary<string, string>();
// XLSX - Excel 2007, 2010, 2012, 2013
props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";
props["Extended Properties"] = "Excel 12.0 XML";
//props["Data Source"] ="h:\\A_TestOpenXML.xlsx";
props["Data Source"] = "h:\\Book1.xls";
//is it possible to use Microsoft.ACE.OLEDB.12.0 to read .XLS files also?
// XLS - Excel 2003 and Older
//props["Provider"] = "Microsoft.Jet.OLEDB.4.0";
//props["Extended Properties"] = "Excel 8.0";
//props["Data Source"] = "h:\\Book1.xls";
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> prop in props)
{
sb.Append(prop.Key);
sb.Append('=');
sb.Append(prop.Value);
sb.Append(';');
}
return sb.ToString();
}
是否需要在服务器上安装office才能使用Microsoft.ACE.OLEDB.12.0?
请帮忙。
【问题讨论】:
-
典型的服务器环境不支持 ACE 驱动程序。 MS Ace download page。请参阅 MS 下载页面上的详细信息部分。
标签: c# excel oledb 32bit-64bit xls