我正在尝试使用C#作为MVC Web应用程序的一部分来访问“Last Saved By”文件属性。我能够在上次修改日期的文件中获得几乎所有其他属性,并且我甚至使用Shell32来获得非常模糊的属性。
但是,当我检索需要报告的每个文件的审核属性时,我找不到获取“上次保存者”属性的方法。我需要从中获取此数据的文件都是Excel。
答案 0 :(得分:4)
可以使用WindowsAPICodePack.Shell库读取“Last Saved By”属性。此属性是特定于应用程序的,因此它不存在于某些文件中(例如,它可用于.xls但不能用于.csv)。 “Last Saved By”文件属性名为“LastAuthor”。
我使用nuget获取包和下面的代码来访问该属性:
string lastSavedBy = null;
using (var so = ShellObject.FromParsingName(file))
{
var lastAuthorProperty = so.Properties.GetProperty(SystemProperties.System.Document.LastAuthor);
if (lastAuthorProperty != null)
{
var lastAuthor = lastAuthorProperty.ValueAsObject;
if (lastAuthor != null)
{
lastSavedBy = lastAuthor.ToString();
}
}
}
答案 1 :(得分:1)
您可以在
中访问该媒体资源Workbook.BuiltinDocumentProperties(7)
从C#访问时,它可能会有索引6
。请参阅MSDN documentation。
快速验证:即时窗口(Ctrl + G)的Excel VBA编辑器(Alt + F11)您可以输入
? ThisWorkbook.BuiltinDocumentProperties(7)
并按Enter键显示该属性。这是Excel的一部分。
还有一部分如何从C#调用Excel,但我不打算介绍这个,你可以找到关于这个主题的数百个答案和例子。
可能更有效的方法就是添加对Microsoft.Office.Tools.Excel Namespace的引用并直接使用,无需Excel。