我有一個excel 2013 powerpivot文檔...它連接到我託管的wcfdataservice ...數據連接正常工作,所有數據都被帶回並填充到我的powerpivot圖表/表格中成功地。以編程方式編輯Excel 2013 Powerpivot Datafeed連接
的數據是在看起來像這樣的數據饋送URL託管.:
http://mydomain/Reporting/WcfDataService1.svc/
我有幾十個客戶,將每個人都需要接受同樣的文檔......但與DataFeedURL編輯點其託管的數據服務......每一個都會有不同的網址...如
http://Client1/Reporting/WcfDataService1.svc/
http://Client2/Reporting/WcfDataService1.svc/
長話短說......我希望爲客戶使用我的C#Windows窗體應用程序,這將有對模板PowePivot Report的引用...以及用戶完成設置vari時的引用關於他們公司的信息......我需要以編程方式將包含更新的連接的PowerPivot報告版本保存到我生成的新URL中。
我試圖做到這一點,如下所示:
string workbookPath = String.Format("{0}\\{1}", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PowerPivotSource.xlsx");
string workbookPath2 = String.Format("{0}\\{1}", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PowerPivotTestOut.xlsx");
foreach (Excel.WorkbookConnection connection in excelWorkbook.Connections)
{
if (connection.Type == Excel.XlConnectionType.xlConnectionTypeDATAFEED)
{
Excel.DataFeedConnection dataFeedCur = connection.DataFeedConnection;
dataFeedCur.Connection = dataFeedCur.Connection.Replace("mydomain", "Client1");
break;
}
}
excelWorkbook.Close(true);
我可以讀dataFeedCur.Connection的內容,但試圖編輯如下所示
dataFeedCur.Connection = dataFeedCur.Connection.Replace("localhost", "Client1");
拋出以下異常:
Exception Message: "Exception from HRESULT: 0x800A03EC"
Exception Stack Trace: "" at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)\r\n at Microsoft.Office.Interop.Excel.DataFeedConnection.set_Connection(Object value)\r\n
有一些跡象表明WorkBookConnection.DataFeedConnection對象是隻讀的...但我聽說其他論壇的人談論能夠編輯此連接字符串,但沒有看到任何示例......任何人都知道如何編輯此DataFeedConnection.Connection對象?
你有沒有得到這個工作? –