Documentação do HotXLS

Preservação de metadados de pasta de trabalho XLS clássico

O HotXLS preserva registros de metadados BIFF8 no nível da pasta de trabalho que o Excel pode gravar em arquivos clássicos .xls . Isso inclui metadados de autoria, metadados de compartilhamento da pasta de trabalho e registros de proteção de revisão que não são expostos como objetos de API de alto nível editáveis

Registros preservados

Superfície da 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;
      

Os registros de compartilhamento de arquivo e de proteção contra revisão são preservados de propósito como cargas brutas de registros BIFF. O HotXLS não reinterpreta nem regrava suas flags internas e hashes de senha, então uma pasta de trabalho criada no Excel pode passar pelo HotXLS sem perder esses metadadosCreatedDate, LastSavedDate, RevisionNumber, EditTimeMinutes) sobrevivem ao fluxo de propriedades de documento OLE, de modo que uma pasta de trabalho carregada e salva mantém suas marcas originais, a menos que a aplicação as altere

As três flags de proteção expõem os registros brutos preservados como valores tipados: SharedRevisionProtected mirrors the PROT4REV shared-workbook revision-tracking flag, SharedRevisionPasswordHash the legacy 16-bit PROT4REVPASSWORD hash, and WindowProtected the WINDOWPROTECT que bloqueia a configuração da janela da pasta de trabalho. Elas são de leitura/escrita na classe, para que aplicações possam produzir os mesmos estados que o Excel

Os registros de compartilhamento de arquivo e proteção de revisão são preservados intencionalmente como payloads brutos de registros BIFF. O HotXLS não reinterpreta nem regrava suas flags internas e hashes de senha, então uma pasta de trabalho criada no Excel pode passar pelo HotXLS sem perder esses metadados

Atualizar o nome do usuário que salvou

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 criptografia separadamente

Os metadados de compartilhamento da pasta de trabalho são separados da criptografia de arquivo do HotXLS. Para gravar um arquivo clássico XLS criptografado, defina EncryptionPassword antes de salvar:

Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('encrypted.xls');
      

Tópicos relacionados