需要获取给定字符串文字的枚举值,例如“xlCenter”(这些值是从Excel宏中剪切和粘贴的)。 我想通过com编组检索实际的常量值(int)-4108 =“xLCenter”这可能吗?如果是这样的话?
理想情况下,我正在寻找像这样的功能
public int ExcelConstant(string constantName)
{ ...}
由于
答案 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