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
WRITEACCESS($005C) stores Excel user nome que last saved pasta de trabalho. HotXLS exposes este por meio deIXLSWorkbook.LastSavedBy/TXLSWorkbook.LastSavedByFILESHARING($005B) eFILESHARING2($01A5) são retained quando Excel-authored pasta de trabalho é opened e saved againPROT4REV($01AF) ePROT4REVPASS($01BC) preservam os metadados de proteção contra revisão da pasta de trabalho durante ciclos abrir-salvarHIDEOBJ($008D) e zero-lengthTEMPLATE($0060) preservar pasta de trabalho view policy e template markersTABID($013D) eBOOKEXT($0863) preservar planilha tab identifiers e pasta de trabalho extension metadataUSERSVIEWBEGIN($01AA) atéUSERSVIEWEND($01AB) preservam as Custom Views do Excel nos globais da pasta de trabalho e nos subfluxos das planilhas, incluindo registros não modelados dentro do blocoOBPROJ,USES-ELFS,BOOKBOOL,BACKUP,FNGROUPCOUNT,COUNTRYeRECALCIDcontinuam fazendo round-trip pelo caminho existente de preservação de registros brutos
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');