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
WRITEACCESS($005C) ukládá uživatelské jméno Excelu, které sešit naposledy uložilo. HotXLS to zpřístupňuje přesIXLSWorkbook.LastSavedBy/TXLSWorkbook.LastSavedByFILESHARING($005B) aFILESHARING2($01A5) se zachovají, když je otevřen sešit vytvořený v Excelu a znovu uloženPROT4REV($01AF) aPROT4REVPASS($01BC) zachovávají metadata ochrany revizí sešitu během cyklů otevření a uloženíHIDEOBJ($008D) a nulové délkyTEMPLATE($0060) zachovávají politiku zobrazení sešitu a značky šablonyTABID($013D) aBOOKEXT($0863) zachovávají identifikátory záložek listů a metadata rozšíření sešituUSERSVIEWBEGIN($01AA) ažUSERSVIEWEND($01AB) zachovávají vlastní zobrazení Excelu v globálních datech sešitu i v podproudech listů, včetně nezmodelovaných záznamů uvnitř blokuOBPROJ,USES-ELFS,BOOKBOOL,BACKUP,FNGROUPCOUNT,COUNTRYaRECALCIDse dál přenášejí přes stávající cestu zachování nezpracovaných záznamů
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');