Excel에서 사용자 정의 속성
7691 단어 Excel
public static string GetCustomProperty(this Excel.Workbook book, string propertyName)
{
//string strResult = string.Empty;
//Office.DocumentProperties pros = (Office.DocumentProperties)book.CustomDocumentProperties;
//strResult = GetCustomProperty(pros, propertyName);
//if (!string.IsNullOrEmpty(strResult))
//{
// return strResult;
//}
//int index = 1;
//while (true)
//{
// string pName = propertyName + index++.ToString();
// string pValue = GetCustomProperty(pros, pName);
// if (string.IsNullOrEmpty(pValue))
// {
// break;
// }
// else
// {
// strResult += pValue;
// }
//}
//return strResult;
string strResult = string.Empty;
var bookType = book.GetType();
var pros = bookType.InvokeMember("CustomDocumentProperties", System.Reflection.BindingFlags.GetProperty, null, book, null);
var propertiesType = pros.GetType();
var enumerator = (IEnumerator)propertiesType.InvokeMember("GetEnumerator", System.Reflection.BindingFlags.InvokeMethod, null, pros, null);
Func<string, string> getPropertyValue = new Func<string, string>(s =>
{
string strValue = string.Empty;
enumerator.Reset();
while (enumerator.MoveNext())
{
var p = enumerator.Current;
var name = p.GetType().InvokeMember("Name", System.Reflection.BindingFlags.GetProperty, null, p, null);
if (name != null && name.ToString().Equals(propertyName))
{
return (string)p.GetType().InvokeMember("Value", System.Reflection.BindingFlags.GetProperty, null, p, null);
}
}
return strValue;
});
strResult = getPropertyValue(propertyName);
if (!string.IsNullOrEmpty(strResult))
{
return strResult;
}
int index = 1;
while (true)
{
string pName = propertyName + index++.ToString();
string pValue = getPropertyValue(pName);
if (string.IsNullOrEmpty(pValue))
{
break;
}
else
{
strResult += pValue;
}
}
return strResult;
}
,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Excel Grep toolExcel Grep tool ■히나가타 ■ 시트 구성 ExcelGrep.cls...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.