2010-05-20 42 views
0

需要獲取給定字符串文字(如「xlCenter」)的枚舉值(這些值是從Excel宏中剪切並粘貼的)。 我想通過com marshaling檢索實際常量值(int)-4108 =「xLCenter」,這可能嗎?如果是的話如何?如何檢索給定字符串文字的枚舉值

理想我要尋找的功能類似這樣的

public int ExcelConstant(string constantName) 
{ ...} 

感謝

回答

2

在Visual Studio中,你應該在你的項目添加到Excel中的一個參考。您將在COM選項卡的對話框中找到Excel。名稱是Microsoft Excel 12.0對象庫(或者如果您使用的是其他版本的Excel,則名稱略有不同)。

在您的項目中,您可以使用Microsoft.Office名稱空間中的類型。例如,您可能想要使用枚舉常量Microsoft.Office.Interop.Excel.Constants.xlCenter。如果你需要的數值,你可以將它轉換爲一個整數:

Int32 xlCenterValue = (Int32) Microsoft.Office.Interop.Excel.Constants.xlCenter; 

或者當你在你的問題已經列出,你可以創建一個函數:

public Int32 ExcelConstant(String constantName) { 
    return Enum.Parse(
    typeof(Microsoft.Office.Interop.Excel.Constants), 
    constantName 
); 
} 

如果你想調用Excel的自動化來自託管代碼的API您可能不關心枚舉的數值。相反,你應該直接使用枚舉在代碼:

var worksheet = (Worksheet) excel.ActiveWorkbook.ActiveSheet; 
var cell = (Range) worksheet.Cells[1, 1]; 
cell.HorizontalAlignment = Constants.xlCenter;