我正在开发相同的解决方案,我需要在Bulk.But中更新多个文件的连接字符串,它适用于MS Excel 2010而不适用于Excel 2013.
异常结果:“来自HRESULT的异常:0x800A03EC”
代码段:
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook ppWorkbook = (Microsoft.Office.Interop.Excel.Workbook)xlApp.Workbooks.Open(fileNameBox.Text);
Microsoft.Office.Interop.Excel.Connections connections = ppWorkbook.Connections;
string newConnectionString = "Connection String";
try
{
foreach (Microsoft.Office.Interop.Excel.WorkbookConnection connection in connections)
{
connection.OLEDBConnection.Connection = newConnectionString;
}
}
catch (Exception ex)
{ }
将连接字符串分配给OLEDBConnection时会发生这种情况。 需要MS Excel 2013 c#的解决方案。
答案 0 :(得分:0)
每个连接都有属性" InModel"。设置此属性后,它将成为powerpivot连接,无法使用excel api进行更新。当您尝试此操作时,您将收到发布的错误消息。 你必须使用powerpivot插件中的dll。
答案 1 :(得分:0)
如果在连接字符串的开头添加OLEDB;
,则可以进行分配。有same issue。