Documentación de HotXLS

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

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');
      

Temas relacionados