Preservación de metadatos de libro XLS clásico
HotXLS conserva registros de metadatos BIFF8 a nivel de libro que Excel puede colocar en archivos clásicos .xls . Esto incluye metadatos de guardado, metadatos de uso compartido del libro y registros de protección de revisiones que no se exponen como objetos de API de alto nivel editables
Registros preservados
WRITEACCESS($005C) stores Excel user nombre que last saved libro. HotXLS exposes este medianteIXLSWorkbook.LastSavedBy/TXLSWorkbook.LastSavedByFILESHARING($005B) yFILESHARING2($01A5) son retained cuando Excel-authored libro es opened y saved againPROT4REV($01AF) yPROT4REVPASS($01BC) conservan los metadatos de protección de revisiones del libro durante los ciclos de abrir y guardarHIDEOBJ($008D) y zero-lengthTEMPLATE($0060) conservar libro view policy y template markersTABID($013D) yBOOKEXT($0863) conservar hoja tab identifiers y libro extension metadataUSERSVIEWBEGIN($01AA) aUSERSVIEWEND($01AB) conservan las Vistas personalizadas de Excel en los globales del libro y en los subflujos de hoja, incluidos los registros no modelados dentro del bloqueOBPROJ,USES-ELFS,BOOKBOOL,BACKUP,FNGROUPCOUNT,COUNTRYyRECALCIDsiguen pasando de ida y vuelta por la ruta existente de conservación de registros sin procesar
Superficie de la 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;
Los registros de uso compartido de archivos y de protección de revisiones se conservan de forma intencionada como cargas útiles de registros BIFF sin procesar. HotXLS no reinterpreta ni reescribe sus marcas internas ni sus hashes de contraseña, de modo que un libro creado en Excel puede pasar por HotXLS sin perder esos metadatosCreatedDate, LastSavedDate, RevisionNumber, EditTimeMinutes) hacen ida y vuelta a través del flujo de propiedades de documento OLE, de modo que un libro cargado y guardado mantiene sus sellos originales a menos que la aplicación los cambie
Las tres marcas de protección exponen los registros crudos conservados como valores con tipo: SharedRevisionProtected mirrors the PROT4REV shared-workbook revision-tracking flag, SharedRevisionPasswordHash the legacy 16-bit PROT4REVPASSWORD hash, and WindowProtected the WINDOWPROTECT que bloquea la configuración de la ventana del libro. Son de lectura y escritura en la clase, de modo que las aplicaciones pueden producir los mismos estados que Excel
Los registros de uso compartido de archivos y de protección de revisión se conservan deliberadamente como cargas útiles de registro BIFF crudas. HotXLS no reinterpreta ni reescribe sus marcas internas ni sus hashes de contraseña, de modo que un libro creado en Excel puede pasar por HotXLS sin perder esos metadatos
Actualizar el nombre del usuario que guardó
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;
Usar cifrado por separado
Los metadatos de uso compartido del libro son independientes del cifrado de archivos de HotXLS. Para escribir un archivo clásico XLS cifrado, establece EncryptionPassword antes de guardar:
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('encrypted.xls');