繁体   English   中英

Word和Excel文件版本

[英]Word and Excel file versions

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

上次修改日期不适用于我,因为将文件复制到新位置后,它会立即更改。

我正在使用c#。

谢谢。

也许Aspose可以帮助您:
http://www.aspose.com/docs/display/wordsnet/Working+with+Document+Properties

我假设Open XML SDK中有类似的东西,但是没有检查。

Office文档中没有DateLastSaved OLE文档属性。 有两种获取Office文档属性的方法。 我更喜欢使用Micorsoft DSO DLL来访问这些属性。 您可以从http://www.microsoft.com/zh-cn/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 Code Pack读取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) ;
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM