Word和Excel文件版本

本文关键字:版本 文件 Excel Word | 更新日期: 2023-09-27 18:29:50

跟踪Excel和Word文件版本的最佳方法是什么。

上次修改的日期对我不起作用,因为一旦您将文件复制到新位置,它就会更改。

我正在使用c#。

谢谢你的回复。

Word和Excel文件版本

也许Aspose可以帮助:
http://www.aspose.com/docs/display/wordsnet/Working+带+文档+属性

我认为OpenXMLSDK中也有类似的东西,但没有检查。

Office文档中有一个DateLastSavedOLE文档属性。有几种方法可以获取Office文档属性。我更喜欢使用Micorsoft DSO DLL来访问这些属性。你可以从http://www.microsoft.com/en-us/download/details.aspx?id=8422.

以下是使用DSO DLL 的示例

DSOFile.OleDocumentPropertiesClass oleDocumentPropertiesClass = 
                       new DSOFile.OleDocumentPropertiesClass();
oleDocumentPropertiesClass.Open("C:''My Documents''some excel file.xlsx");
MessageBox.Show(oleDocumentPropertiesClass.SummaryProperties.DateLastSaved.ToString());

如果您更喜欢使用windows API,这里有一个示例,使用WindowsAPI代码包读取MS Office XML文档属性在服务器上失败

根据您拥有的用户数量以及审计跟踪的重要性,您可以考虑查看正式的版本控制工具。其中相当多的文件和git或subversion等工具都是免费的(至少它们可以是免费的)。这些工具可以为您提供所有内容,包括人员、日期、时间内容,以及回滚和比较版本等方便的项目。。。当然,这可能有些过头了。。。

我认为FileInfo的属性LastWriteTime应该解决这个

在本例中,模式可以是类似于"Letter.doc"或"Worksheet.xls"的

PATH_TO_TRAKING_FOLDER是一个基本文件夹,可以包含您正在跟踪的不同版本的word/excel文件

using System.IO;
class Foo
{
    public method Bla()
    {
        DirectoryInfo dir;
        List<FileInfo> lstFiles;
        string pattern ;
        string line ;
            //pattern can be something like "Letter.doc" or "Worksheet.xls"
        pattern = "OfficeFile.extension" ;
            //is the base folder that can contains the different versions of the word/excel files that you are tracking
        dir = new DirectoryInfo("PATH_TO_TRAKING_FOLDER");
        lstFiles = new List<FileInfo>(dir.EnumerateFiles(pattern, SearchOption.AllDirectories).OrderBy(x => x.LastWriteTime) ;
        foreach(FileInfo fi in lstFiles)
        {
            line = Strin.format("{0}:{1}", fi.Name,fi.LastWriteTime) ;
            Console.WriteLine(line) ;
        }
    }
}