需要獲取給定字符串文字(如「xlCenter」)的枚舉值(這些值是從Excel宏中剪切並粘貼的)。 我想通過com marshaling檢索實際常量值(int)-4108 =「xLCenter」,這可能嗎?如果是的話如何?如何檢索給定字符串文字的枚舉值
理想我要尋找的功能類似這樣的
public int ExcelConstant(string constantName)
{ ...}
感謝
需要獲取給定字符串文字(如「xlCenter」)的枚舉值(這些值是從Excel宏中剪切並粘貼的)。 我想通過com marshaling檢索實際常量值(int)-4108 =「xLCenter」,這可能嗎?如果是的話如何?如何檢索給定字符串文字的枚舉值
理想我要尋找的功能類似這樣的
public int ExcelConstant(string constantName)
{ ...}
感謝
在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;
我不知道這是否是你想要確切的答案,但我建議在Microsoft.Office.Interop.Excel.Constants
考慮看看:
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.constants%28office.11%29.aspx
你可能會使用Enum.GetValues