0
我读了一些关于这个主题的其他线程,但它仍然dosn't工作,我不知道为什么。C#获取excel工作表没有办公室unsing OLEDB
有一个例外:'Microsoft.ACE.OLEDB.12.0'-Provider未在本地机器上注册。我已经安装了Office 2007和2010的数据库引擎。
您有什么想法吗?
OS:Win 7的教授64位
static void Main(string[] args)
{
OleDbConnection connection = null;
DataTable Sheets = null;
String file = args[0];
String filePath = Path.GetDirectoryName(args[0]);
String connPath = "";
if(Path.GetExtension(file).Equals(".xls"))
connPath = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + file + ";Extended Properties=Excel 8.0";
else
connPath = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";
try
{
connection = new OleDbConnection(connPath);
connection.Open();
Sheets = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
...
这不是直接回答你的问题,但正如你所看到的,使用OLEDB有很多限制。如果你想完全控制办公室文件(没有办公室),你可能想看看openxml sdk:https://msdn.microsoft.com/en-us/library/office/bb448854.aspx?f=255&MSPPError=- 2147217396 –