Documentación de HotXLS

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

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

Temas relacionados