Preservación de metadatos del libro de trabajo XLS clásico
HotXLS conserva los 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 revisión que no se exponen como objetos editables de la API de alto nivel
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 revisión 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) hastaUSERSVIEWEND($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 por el camino existente de preservación de registros en bruto
Superficie de 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 revisión se conservan deliberadamente como cargas útiles de registros BIFF en bruto. HotXLS no reinterpreta ni reescribe sus banderas internas ni sus hashes de contraseña, así que un libro creado en Excel puede pasar por HotXLS sin perder esos metadatosCreatedDate, LastSavedDate, RevisionNumber, EditTimeMinutes) sobreviven al flujo de propiedades de documento OLE, de modo que un libro cargado y guardado conserva sus marcas originales a menos que la aplicación las cambie
Las tres banderas 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/escritura en la clase, de modo que las aplicaciones pueden crear los mismos estados que Excel
Los registros de uso compartido de archivos y de protección de revisiones se conservan deliberadamente como cargas útiles crudas de registros BIFF. HotXLS no reinterpreta ni reescribe sus banderas 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 de forma independiente
Los metadatos de uso compartido del libro son independientes del cifrado de archivos de HotXLS. Para escribir un archivo clásico XLS cifrado, define EncryptionPassword antes de guardar:
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('encrypted.xls');