如何检索给定字符串文字的枚举值

时间:2010-05-20 11:09:48

标签: c# excel

需要获取给定字符串文字的枚举值,例如“xlCenter”(这些值是从Excel宏中剪切和粘贴的)。 我想通过com编组检索实际的常量值(int)-4108 =“xLCenter”这可能吗?如果是这样的话?

理想情况下,我正在寻找像这样的功能

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

由于

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

您可以使用Enum.GetValues

答案 2 :(得分:0)

我不确定这是否是您想要的确切答案,但我建议您查看Microsoft.Office.Interop.Excel.Constants

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.constants%28office.11%29.aspx