Klasik XLS çalışma kitabı meta verilerinin korunması
HotXLS, Excel'in klasik .xls dosyalarına yerleştirebildiği çalışma kitabı düzeyindeki BIFF8 meta veri kayıtlarını korur. Bu, kaydeden meta verilerini, çalışma kitabı paylaşım meta verilerini ve düzenlenebilir üst düzey API nesneleri olarak açığa çıkarılmayan düzeltme koruma kayıtlarını içerir
Korunan kayıtlar
WRITEACCESS($005C), çalışma kitabını en son kaydeden Excel kullanıcı adını saklar. HotXLS bunuIXLSWorkbook.LastSavedBy/TXLSWorkbook.LastSavedByaracılığıyla açığa çıkarırFILESHARING($005B) veFILESHARING2($01A5), Excel tarafından yazılmış bir çalışma kitabı yeniden açılıp kaydedildiğinde korunurPROT4REV($01AF) vePROT4REVPASS($01BC), aç-kaydet döngüleri sırasında çalışma kitabı düzeltme koruması meta verilerini korurHIDEOBJ($008D) ve sıfır uzunlukluTEMPLATE($0060), çalışma kitabı görünüm ilkesini ve şablon işaretlerini korurTABID($013D) veBOOKEXT($0863), sayfa sekmesi tanımlayıcılarını ve çalışma kitabı uzantısı meta verilerini korurUSERSVIEWBEGIN($01AA) ileUSERSVIEWEND($01AB) arası, Excel Özel Görünümlerini çalışma kitabı genel değerlerinde ve çalışma sayfası alt akışlarında, blok içindeki modellenmemiş kayıtlar da dahil olmak üzere korurOBPROJ,USES-ELFS,BOOKBOOL,BACKUP,FNGROUPCOUNT,COUNTRYveRECALCID, mevcut ham kayıt koruma yolundan gidiş-dönüş yapmaya devam eder
API yüzeyi
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;
SummaryInformation'ın dört tarih ve sayısal özelliği (CreatedDate, LastSavedDate, RevisionNumber, EditTimeMinutes), OLE belge özellikleri akışı üzerinden round-trip yapar; böylece yüklenen ve kaydedilen bir çalışma kitabı, uygulama bunları değiştirmediği sürece özgün zaman damgalarını korur
Üç koruma bayrağı, korunan ham kayıtları türlü değerler olarak açığa çıkarır: SharedRevisionProtected PROT4REV paylaşılan çalışma kitabı düzeltme takibi bayrağını, SharedRevisionPasswordHash eski 16 bitlik PROT4REVPASSWORD karmasını, WindowProtected ise çalışma kitabı pencere yapılandırmasını kilitleyen WINDOWPROTECT bayrağını yansıtır. Bu alanlar sınıf üzerinde okuma-yazmadır; böylece uygulamalar Excel'in yaptığı durumları aynı şekilde yazabilir
Dosya paylaşımı ve düzeltme koruması kayıtları, kasıtlı olarak ham BIFF kayıt yükleri olarak korunur. HotXLS, bunların iç bayraklarını ve parola karmalarını yeniden yorumlamaz veya yeniden yazmaz; böylece Excel'de yazılmış bir çalışma kitabı, bu meta verileri kaybetmeden HotXLS'ten geçebilir
Kaydeden kullanıcı adını güncelleme
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;
Şifrelemeyi ayrı olarak kullanma
Çalışma kitabı paylaşım meta verisi, HotXLS dosya şifrelemesinden ayrıdır. Şifreli bir klasik XLS dosyası yazmak için kaydetmeden önce EncryptionPassword'i ayarlayın:
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('encrypted.xls');