Dokumentace HotXLS

Zachování metadat sešitu klasického XLS

HotXLS zachovává záznamy metadat BIFF8 na úrovni sešitu, které Excel může ukládat do klasických souborů .xls . Patří sem metadata Saved By, metadata sdílení sešitu a záznamy ochrany revizí, které nejsou zpřístupněné jako upravitelné objekty vysoké úrovně API

Zachované záznamy

Povrch API

type
  IXLSWorkbook = class
    property LastSavedBy: WideString;
    property EncryptionPassword: WideString;
  end;

  TXLSWorkbook = class
    property LastSavedBy: WideString;
    property EncryptionPassword: WideString;
    property CreatedDate: TDateTime;
    property LastSavedDate: TDateTime;
    property RevisionNumber: Integer;
    property EditTimeMinutes: Double;
    property SharedRevisionProtected: Boolean;
    property SharedRevisionPasswordHash: Word;
    property WindowProtected: Boolean;
  end;
      

Záznamy sdílení souboru a ochrany revizí se záměrně zachovávají jako nezpracovaná datová pole BIFF. HotXLS jejich vnitřní příznaky ani hash hesel nepřekládá ani nepřepisuje, takže sešit vytvořený v Excelu může projít přes HotXLS bez ztráty těchto metadatCreatedDate, LastSavedDate, RevisionNumber, EditTimeMinutes) putují přes stream vlastností dokumentu OLE tam i zpět, takže načtený a uložený sešit si ponechá původní časová razítka, pokud je aplikace nezmění

Tři ochranné příznaky zpřístupňují zachované surové záznamy jako typované hodnoty: SharedRevisionProtected mirrors the PROT4REV shared-workbook revision-tracking flag, SharedRevisionPasswordHash the legacy 16-bit PROT4REVPASSWORD hash, and WindowProtected the WINDOWPROTECT příznak, který zamyká konfiguraci okna sešitu. Na třídě jsou čtení/zápis, takže aplikace mohou nastavit stejné stavy jako Excel

Záznamy sdílení souboru a ochrany revizí se záměrně zachovávají jako surové datové části záznamů BIFF. HotXLS jejich vnitřní příznaky ani hash hesel znovu neinterpretuje ani nepřepisuje, takže sešit vytvořený v Excelu může projít přes HotXLS bez ztráty těchto metadat

Aktualizace uloženého uživatelského jména

uses lxHandle;

var
  Workbook: TXLSWorkbook;
begin
  Workbook := TXLSWorkbook.Create;
  try
    Workbook.Open('shared-template.xls');
    Workbook.LastSavedBy := 'Build Server';
    Workbook.SaveAs('shared-template-updated.xls');
  finally
    Workbook.Free;
  end;
end;
      

Samostatné použití šifrování

Metadata sdílení sešitu jsou oddělená od šifrování souboru v HotXLS. Chcete-li zapsat šifrovaný klasický soubor XLS, nastavte před uložením EncryptionPassword :

Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('encrypted.xls');
      

Související témata