2009-10-28 177 views
0

我有一個存儲過程,它處理Excel電子表格中的一些數據。我通過創建一個QueryTable對象來導入數據。我想爲對象設置TextFileColumnDataTypes屬性,但我無法弄清楚如何將數組傳遞給sp_OASetProperty例程。如何使用sp_OASetProperty設置數組值

這是我的代碼看起來像,但顯然它不工作:

EXECUTE @rc = master..sp_OASetProperty @xlQueryTable, 'TextFileColumnDataTypes', 'Array(xlTextFormat, xlTextFormat, xlGeneralFormat)' 

有沒有辦法做到這一點?

回答

0

xlTextFormat和xlGeneralFormat的值來自哪裏?是否有可能這應該是下列之一:

DECLARE @command VARCHAR(255); 

SET @command = 'Array(' + @xlTextFormat + ', ' + @xlTextFormat + ', ' + @xlGeneralFormat + ')'; 
-- or 
SET @command = 'Array("' + @xlTextFormat + '", "' + @xlTextFormat + '", "' + @xlGeneralFormat + '")'; 
-- or 
SET @command = 'Array("xlTextFormat", "xlTextFormat", "xlGeneralFormat")'; 

EXEC @rc = master..sp_OASetProperty @xlQueryTable, 'TextFileColumnDataTypes', @command; 

否則,也許你應該溝sp_OA和使用CLR。

+0

感謝您的回覆。值xlTextFormat和xlGeneralFormat是我從[msdn](http://msdn.microsoft.com/en-us/library/aa215749%28office.11​​%29.aspx) 中提取的excel常量使用CLR重寫該過程的方法是可能,但這是最後的選擇。 – Gsur 2009-10-28 23:38:14

+0

好的,抱歉,我沒有任何其他建議。 2005年發佈時,我停止使用sp_OA,並且從未使用它來自動化Excel。 – 2009-10-28 23:49:01