如何检索给定的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
: