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

需要获得给定的string文字(如“xlCenter”)的枚举值(这些值是从Excelmacros中剪切并粘贴的)。 我想通过com marshaling检索实际的常量值(int)-4108 =“xLCenter”这是可能的吗? 如果是的话如何?

理想情况下,我正在寻找这样的function

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

谢谢

在Visual Studio中,您应该在项目中添加对Excel的引用。 您将在“ 添加引用”对话框的“ COM”选项卡中findExcel。 名称是Microsoft Excel 12.0对象库 (如果您使用的是其他版本的Excel,则名称稍有不同)。

在您的项目中,您可以使用Microsoft.Office命名空间中的types。 例如,你可能想要使用Microsoft.Office.Interop.Excel.Constants.xlCenter枚举常量。 如果您需要数值,只需将其转换为整数:

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

或者你可以像你在你的问题中概述的那样创build一个函数:

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

如果您想从托pipe代码调用Excel自动化API,则可能不关心枚举的数值。 相反,你应该直接在你的代码中使用枚举:

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

你可以使用Enum.GetValues

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

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