Zachowanie metadanych klasycznego skoroszytu XLS
HotXLS zachowuje rekordy metadanych BIFF8 na poziomie skoroszytu, które Excel może umieszczać w klasycznych plikach .xls . Obejmuje to metadane saved-by, metadane udostępniania skoroszytu oraz rekordy ochrony wersji, które nie są udostępniane jako edytowalne obiekty wysokopoziomowego API
Zachowane rekordy
WRITEACCESS($005C) stores Excel user nazwa że last saved skoroszyt. HotXLS exposes ten przezIXLSWorkbook.LastSavedBy/TXLSWorkbook.LastSavedByFILESHARING($005B) iFILESHARING2($01A5) są retained gdy Excel-authored skoroszyt jest opened i saved againPROT4REV($01AF) iPROT4REVPASS($01BC) zachowują metadane ochrony wersji skoroszytu podczas cykli otwarcia i zapisuHIDEOBJ($008D) i zero-lengthTEMPLATE($0060) zachować skoroszyt view policy i template markersTABID($013D) iBOOKEXT($0863) zachowują identyfikatory kart arkuszy i metadane rozszerzeń skoroszytuUSERSVIEWBEGIN($01AA) doUSERSVIEWEND($01AB) zachowują niestandardowe widoki Excela w globalnych danych skoroszytu i podstrumieniach arkuszy, w tym niezamodelowane rekordy wewnątrz blokuOBPROJ,USES-ELFS,BOOKBOOL,BACKUP,FNGROUPCOUNT,COUNTRYiRECALCIDnadal przechodzą przez istniejącą ścieżkę zachowania surowych rekordów podczas zapisu i ponownego odczytu
Powierzchnia 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;
Rekordy udostępniania pliku i ochrony wersji są celowo zachowywane jako surowe ładunki rekordów BIFF. HotXLS nie interpretuje na nowo ani nie przepisuje ich wewnętrznych flag i skrótów haseł, więc skoroszyt utworzony w Excelu może przejść przez HotXLS bez utraty tych metadanychCreatedDate, LastSavedDate, RevisionNumber, EditTimeMinutes) przechodzą round-trip przez strumień właściwości dokumentu OLE, więc skoroszyt po zapisie i ponownym otwarciu zachowuje swoje oryginalne znaczniki, dopóki aplikacja ich nie zmieni
Trzy flagi ochrony udostępniają zachowane surowe rekordy jako wartości typowane: SharedRevisionProtected mirrors the PROT4REV shared-workbook revision-tracking flag, SharedRevisionPasswordHash the legacy 16-bit PROT4REVPASSWORD hash, and WindowProtected the WINDOWPROTECT flaga blokująca konfigurację okna skoroszytu. Są one do odczytu i zapisu na klasie, dzięki czemu aplikacje mogą ustawiać te same stany, które ustawia Excel
Rekordy udostępniania plików i ochrony rewizji są celowo zachowywane jako surowe ładunki rekordów BIFF. HotXLS nie interpretuje ich wewnętrznych flag i skrótów haseł na nowo ani ich nie przepisuje, więc skoroszyt utworzony w Excelu może przejść przez HotXLS bez utraty tych metadanych
Aktualizacja nazwy użytkownika zapisanego
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;
Użyj szyfrowania osobno
Metadane udostępniania skoroszytu są niezależne od szyfrowania pliku HotXLS. Aby zapisać zaszyfrowany klasyczny plik XLS, ustaw EncryptionPassword przed zapisem:
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('encrypted.xls');