簡體   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