Excel пÑедлага две неÑа, наÑеÑени âпаÑолаâ? и Ñамо едно Ð¾Ñ ÑÑÑ Ðµ ÑиÑÑиÑане. ÐаÑолаÑа за оÑваÑÑне задейÑÑва иÑÑинÑки ÑиÑÑÑ: без Ð½ÐµÑ ÑайлÑÑ Ð¸Ð·Ð¾Ð±Ñо не може да бÑде пÑоÑеÑен. ÐаÑолиÑе за заÑиÑа на ÑабоÑÐ½Ð¸Ñ Ð»Ð¸ÑÑ Ð¸ ÑабоÑнаÑа книга не пÑавÑÑ Ð½Ð¸Ñо подобно. Те пÑоÑÑо Ð·Ð°Ð´Ð°Ð²Ð°Ñ Ñлаг, койÑо ÑÑвмеÑÑим ÑедакÑÐ¾Ñ Ñе ÑÑглаÑÑва да Ñпазва, а ÑабоÑна книга, ÑÑдÑÑжаÑа Ñамо Ñози Ñлаг, е обикновен ÑеÑлив zip аÑÑ Ð¸Ð² Ñ Ð´Ð°Ð½Ð½Ð¸ в ÑиÑÑ ÑекÑÑ. ÐзбеÑеÑе гÑеÑÐ½Ð¸Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ Ñе изпÑаÑиÑе ведомоÑÑи за заплаÑи, коиÑо Ð¸Ð·Ð³Ð»ÐµÐ¶Ð´Ð°Ñ Ð·Ð°ÐºÐ»ÑÑени в Excel, но Ñе ÑеÑÐ°Ñ Ð²Ñв вÑеки ÑекÑÑов ÑедакÑоÑ.
ÐоказаÑелÑÑвоÑо оÑнема деÑÐµÑ ÑекÑнди. ÐÑеименÑвайÑе заÑиÑен .xlsx Ñайл на .zip, оÑвоÑеÑе го в койÑо и да е аÑÑ
иваÑÐ¾Ñ Ð¸ погледнеÑе xl/worksheets/sheet1.xml. Ðко ÑÑойноÑÑиÑе на клеÑкиÑе Ñа Ñам в ÑиÑÑ UTF-8, ÑайлÑÑ Ð½Ðµ е ÑиÑÑиÑан, незавиÑимо колко подкани за паÑола показва Excel, когаÑо нÑкой Ñе опиÑа да ÑедакÑиÑа клеÑка. Този пÑопÑÑк оÑелÑва Ñ Ð³Ð¾Ð´Ð¸Ð½Ð¸ в екипи, коиÑо пÑÐ¸ÐµÐ¼Ð°Ñ Ð·Ð°ÑиÑаÑа на лиÑÑа за повеÑиÑелноÑÑ, и обикновено излиза наÑве в денÑ, в койÑо пÑегледÑÑ Ð½Ð° ÑигÑÑноÑÑÑа извÑÑÑи ÑоÑно Ñова пÑеименÑване.
HotXLS е вгÑадена библиоÑека за елекÑÑонни ÑаблиÑи за Delphi и C++Builder, коÑÑо дÑÑжи двеÑе ÑÑнкÑии Ð¾Ñ Ð´Ð²ÐµÑе ÑÑÑани на Ñази ÑазделиÑелна линиÑ. ÐаÑиÑаÑа на ÑабоÑÐ½Ð¸Ñ Ð»Ð¸ÑÑ Ð¸ ÑабоÑнаÑа книга пÑедÑÑавлÑва огÑаниÑение за ÑедакÑиÑане, подкÑепено Ð¾Ñ ÑмиÑлено Ñлаб оÑÑаÑÑл Ñ
еÑ. SaveAsEncrypted генеÑиÑа AES-ÑиÑÑиÑан пакеÑ, койÑо ниÑо дÑÑго оÑвен паÑолаÑа не може да оÑвоÑи. РазделиÑе по-Ð´Ð¾Ð»Ñ Ð¾Ð¿Ð¸ÑÐ²Ð°Ñ ÐºÐ°ÐºÐ²Ð¾ запиÑва Ñова извикване, аÑимеÑÑиÑÑа, около коÑÑо ÑÑÑбва да пÑоекÑиÑаÑе аÑÑ
иÑекÑÑÑаÑа Ñи (HotXLS пиÑе ÑиÑÑиÑани Ñайлове, но не може да ги ÑеÑе обÑаÑно), и по какво Ñе ÑазлиÑава по-ÑÑаÑиÑÑ XLS пÑÑ.
ÐаÑо заÑиÑаÑа на лиÑÑа не е ÑиÑÑиÑане
ÐеÑодиÑе Protect за лиÑÑовеÑе и ProtectWorkbook за ÑабоÑнаÑа книга ÑÑÑ
ÑанÑÐ²Ð°Ñ 4-ÑиÑÑен ÑеÑÑнадеÑеÑиÑен Ñ
ÐµÑ Ð½Ð° паÑолаÑа. Това е оÑÑаÑелиÑÑ Ð°Ð»Ð³Ð¾ÑиÑÑм, койÑо OOXML и BIFF наÑледиÑ
а Ð¾Ñ Excel Ð¾Ñ 90-Ñе години на Ð¼Ð¸Ð½Ð°Ð»Ð¸Ñ Ð²ÐµÐº, и докÑменÑаÑиÑÑа на ÑоÑмаÑа никога не ÑвÑÑди, Ñе Ñой пÑави неÑо повеÑе Ð¾Ñ Ð¿ÑедоÑвÑаÑÑване на ÑлÑÑайни ÑедакÑии. ÐакеÑÑÑ Ð¾ÑÑава обикновен ÑеÑлив zip: данни за клеÑки, ÑоÑмÑли и Ñподелени низове в XML Ñ ÑиÑÑ ÑекÑÑ. ÐаÑÑÑойкиÑе по подÑазбиÑане влоÑÐ°Ð²Ð°Ñ Ð½ÐµÑаÑа: вÑÑка клеÑка запоÑва Ñ Locked=True, Ñака Ñе извикванеÑо на Protect без пÑÑво оÑклÑÑване на вÑ
Ð¾Ð´Ð½Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ замÑазÑва ÑÐµÐ»Ð¸Ñ Ð»Ð¸ÑÑ ÑÑеÑÑ ÑедакÑиÑане, оÑÑавÑйки вÑÑка ÑÑойноÑÑ Ð½Ð°Ð¿Ñлно видима.
ÐиÑо Ð¾Ñ Ñова не пÑави заÑиÑаÑа безполезна. ÐаÑоÑванеÑо на поÑÑебиÑелиÑе кÑм диапазони за ÑедакÑиÑане и ÑÑабилизиÑанеÑо на оÑоÑмлениеÑо за пеÑÐ°Ñ Ñа Ñеални задаÑи, опиÑани в наÑаÑа ÑÑаÑÐ¸Ñ Ð·Ð° заÑиÑа на ÑабоÑни лиÑÑове и наÑÑÑойки на ÑÑÑаниÑи. Ðо Ñова Ñа задаÑи за използваемоÑÑ. РмоменÑа, в койÑо изиÑкванеÑо е повеÑиÑелноÑÑ, единÑÑвениÑÑ API, койÑо оÑговаÑÑ Ð½Ð° Ñова, е SaveAsEncrypted.
Ðакво вÑÑÑноÑÑ Ð·Ð°Ð¿Ð¸Ñва SaveAsEncrypted
ÐнедÑÑванеÑо Ñледва ECMA-376 Standard Encryption, поÑоÑено в Ñаздел 2.3.4 на [MS-OFFCRYPTO]. ÐаÑолаÑа пÑеминава пÑез 50 000 иÑеÑаÑии на SHA-1 за извеждане на AES-128 клÑÑ. Ðлок за пÑовеÑка (verifier block), ÑиÑÑиÑан Ñ AES-128 в Ñежим ECB, позволÑва на конÑÑмаÑоÑа да поÑвÑÑди паÑолаÑа, пÑеди да деÑиÑÑиÑа каквоÑо и да е, а ÑелиÑÑ Ð¿Ð°ÐºÐµÑ Ð½Ð° ÑабоÑнаÑа книга Ñе ÑиÑÑиÑа Ñ AES-128 в Ñежим CBC. Това, коеÑо попада на диÑка, изобÑо не е zip Ñайл. Това е OLE ÑÑÑÑавен Ñайл, ÑÑдÑÑÐ¶Ð°Ñ Ð¿Ð¾ÑоÑи EncryptionInfo, EncryptedPackage и DataSpaces, без диÑекÑоÑÐ¸Ñ xl/, коÑÑо аÑÑ
иваÑÐ¾Ñ Ð´Ð° може да покаже, поÑади коеÑо ÑеÑÑÑÑ Ñ Ð¿ÑеименÑване не ÑазкÑива ниÑо ÑеÑливо. Excel 2007 и по-нови веÑÑии го оÑваÑÑÑ Ñамо Ñ Ð¿Ð°ÑолаÑа, а ÑÑвÑеменниÑÑ LibreOffice ÑÑÑо ÑеÑе ÑÑандаÑÑноÑо ÑиÑÑиÑане.
var
Book: TXLSXWorkbook;
Sheet: TXLSXWorksheet;
rc: Integer;
begin
Book := TXLSXWorkbook.Create;
try
Sheet := Book.Sheets.Add('Payroll');
Sheet.Cells[1, 1].Value := 'Employee';
Sheet.Cells[1, 2].Value := 'Net pay';
Sheet.Cells[2, 1].Value := 'A. Garcia';
Sheet.Cells[2, 2].Value := 4815.16;
rc := Book.SaveAsEncrypted('payroll-2026-06.xlsx', PasswordFromVault);
if rc <> 1 then
raise Exception.CreateFmt('Encrypted save failed (rc=%d)', [rc]);
finally
Book.Free;
end;
end;
ТÑеÑиÑайÑе пÑоменливаÑа за паÑола ÑÑÑ ÑÑÑаÑа гÑижа каÑо низ за вÑÑзка Ñ Ð±Ð°Ð·Ð° данни (connection string). ÐземайÑе Ñ Ð¾Ñ ÑÑÐµÐ·Ð¾Ñ Ð¸Ð»Ð¸ Ð¾Ñ ÑÑлÑга за генеÑиÑане на Ñайни в поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ, никога не Ñ ÑегиÑÑÑиÑайÑе в лог Ñайлове и никога не Ñ Ð·Ð°Ð¿Ð¸ÑвайÑе в ÑамаÑа ÑабоÑна книга. ÐÑовеÑкаÑа на кода за вÑÑÑане не е незадÑлжиÑелна ÑеÑемониÑ. ÐÐ°Ð¿Ð¸Ñ Ð·Ð° ÑиÑÑиÑане, койÑо Ñе пÑовали по ÑÑедаÑа, ÑÑÑбва да пÑекÑаÑи доÑÑавкаÑа, ÑÑй каÑо единÑÑвенаÑа ÑезеÑвна вÑзможноÑÑ, коÑÑо извикваÑиÑÑ ÐºÐ¾Ð´ може да пÑедложи, е неÑиÑÑиÑано копие â?а Ñова копие е именно инÑиденÑÑÑ, койÑо Ñази ÑÑнкÑÐ¸Ñ ÑÑÑеÑÑвÑва да пÑедоÑвÑаÑи.
СÑÑеÑÑвÑва и ÑеÑÑ Ð·Ð° пÑиемане, пÑовеÑим Ð¾Ñ Ð¼Ð°Ñина, койÑо не ÑÑÑÑва поÑÑи ниÑо: извикайÑе CanReadEncrypted на ÑокÑ-Ñо запиÑÐ°Ð½Ð¸Ñ Ñайл. Той вÑÑÑа true Ñамо когаÑо изÑ
одÑÑ Ð½Ð°Ð¸ÑÑина е конÑÐµÐ¹Ð½ÐµÑ Ð·Ð° ÑиÑÑиÑане, Ñака Ñе поÑвÑÑждаванеÑо Ð¼Ñ Ñлед вÑеки ÑиÑÑиÑан Ð·Ð°Ð¿Ð¸Ñ ÑÐ»Ð°Ð²Ñ Ð½Ð°Ð¹-Ð²Ð°Ð¶Ð½Ð¸Ñ ÑегÑеÑионен пÑÐ¾Ð±Ð»ÐµÐ¼Ñ â?пÑÑ Ð½Ð° кода, койÑо ÑиÑ
омÑлком Ñе е вÑÑнал кÑм обикновен SaveAs â?в моменÑа на вÑзникванеÑо мÑ, а не ÑедмиÑи по-кÑÑно в поÑенÑкаÑа кÑÑÐ¸Ñ Ð½Ð° клиенÑа. ÐоÑледнаÑа дÑма вÑе пак пÑинадлежи на ÑÑÑноÑо оÑваÑÑне в Excel Ñ ÑеалнаÑа паÑола по вÑеме на ÑеÑÑовеÑе за пÑÑкане.
Само за Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð¾ дизайн: обÑабоÑка на EXlsxEncryptionNotImplemented
ÐÑо Ñ Ð°ÑимеÑÑиÑÑа, коÑÑо ÑÑÑбва да оÑоÑми аÑÑ
иÑекÑÑÑаÑа на ваÑÐ¸Ñ Ð¿ÑоÑеÑ: HotXLS ÑиÑÑиÑа пÑи запиÑ, но не деÑиÑÑиÑа пÑи оÑваÑÑне. OpenEncrypted Ñ
вÑÑÐ»Ñ EXlsxEncryptionNotImplemented, когаÑо е наÑоÑен кÑм дейÑÑвиÑелно ÑиÑÑиÑан пакеÑ; пÑи обикновена ÑабоÑна книга пÑоÑÑо пÑеминава кÑм ноÑмално Open извикване. СÑпÑÑÑÑваÑаÑа Ñонда CanReadEncrypted оÑкÑива леÑно OLE конÑейнеÑа за ÑиÑÑиÑане, Ñака Ñе вÑ
одÑÑиÑÑ ÐºÐ¾Ð´ може да наÑоÑва Ñакива Ñайлове, без да задейÑÑва изклÑÑениеÑо:
var
Book: TXLSXWorkbook;
begin
Book := TXLSXWorkbook.Create;
try
if Book.CanReadEncrypted(FileName) then
begin
// Encrypted container: HotXLS cannot decrypt it.
Writeln(FileName + ': needs manual decryption in Excel first');
Exit;
end;
try
Book.OpenEncrypted(FileName, ''); // plain files fall through to Open
Writeln(FileName + ': opened, ' + IntToStr(Book.Sheets.Count) + ' sheet(s)');
except
on EXlsxEncryptionNotImplemented do
Writeln(FileName + ': encrypted - routed to manual queue');
end;
finally
Book.Free;
end;
end;
Тази аÑимеÑÑÐ¸Ñ Ð¸Ð¼Ð° едно ÑÑно аÑÑ Ð¸ÑекÑÑÑно ÑÑлкÑване: ÑиÑÑиÑайÑе поÑледно, в ÑÐ°Ð¼Ð¸Ñ ÐºÑай на доÑÑавкаÑа. ÐазеÑе оÑÐ¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ð² ÑиÑÑ ÑекÑÑ Ð² гÑаниÑаÑа на ваÑаÑа ÑигÑÑна зона â?в база данни, Ñ ÑанилиÑе за докÑменÑи или Ñподелен ÑеÑÑÑÑ Ñ ÐºÐ¾Ð½ÑÑолиÑан доÑÑÑп â?и генеÑиÑайÑе ÑиÑÑиÑаноÑо копие каÑо поÑледна ÑÑÑпка, пÑеди ÑайлÑÑ Ð´Ð° напÑÑне ÑиÑÑемаÑа. ÐÑоÑеÑ, койÑо аÑÑ Ð¸Ð²Ð¸Ñа Ñамо ÑиÑÑиÑÐ°Ð½Ð¸Ñ Ð¸Ð·Ñ Ð¾Ð´, Ñе е заклÑÑил за ÑобÑÑвениÑе Ñи данни, ÑÑй каÑо Ð½Ð¸ÐºÐ¾Ñ Ð¿Ð¾-кÑÑна ÑÑÑпка на ÑÑÑаÑа ÑиÑÑема не може да оÑвоÑи оÑново Ñези Ñайлове. ÐогаÑо поÑÐ»ÐµÐ´Ð²Ð°Ñ Ð¿ÑоÑÐµÑ Ð½Ð° HotXLS Ñе нÑждае оÑново Ð¾Ñ ÑабоÑнаÑа книга, подайÑе Ð¼Ñ Ð¾Ñигинала в ÑиÑÑ ÑекÑÑ, а не аÑÑеÑакÑа за доÑÑавка.
AES-128 Standard Encryption и ÑÑоÑвеÑÑÑвиеÑо Ñ AES-256
ШиÑÑиÑанеÑо на Ñайлове в Office Ñе дели на две поколениÑ. Standard Encryption, коеÑо HotXLS запиÑва, използва AES-128 Ñ Ð´ÐµÑиваÑÐ¸Ñ Ð½Ð° клÑÑове по SHA-1. Agile Encryption Ñе поÑви по-кÑÑно и пÑеминава кÑм AES-256 Ñ SHA-512 и ÑазлиÑен, опиÑан Ñ XML конÑÐµÐ¹Ð½ÐµÑ Ð·Ð° клÑÑове. РдвеÑе Ñе оÑваÑÑÑ Ð¿ÑозÑаÑно в Excel, а AES-128 вÑе оÑе е изÑиÑлиÑелно ÑÑабилен за заÑиÑа на Ñайл пÑи пÑедаване кÑм клиенÑ.
РазликаÑа ÑпиÑа да бÑде академиÑна в денÑ, в койÑо вÑпÑоÑник за ÑигÑÑноÑÑ Ð¿Ð¾Ð¸Ñка âAES-256 ÑиÑÑиÑане на Ñайлове в покойâ? Standard Encryption не оÑговаÑÑ Ð½Ð° Ñова изиÑкване, незавиÑимо колко Ñилна е паÑолаÑа, и никой паÑамеÑÑÑ Ð½Ð° SaveAsEncrypted не пÑÐ¾Ð¼ÐµÐ½Ñ Ð¸Ð·Ð»ÑÑÐ²Ð°Ð½Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑÑм. Така Ñе поÑоÑеÑе ÑоÑÐ½Ð¸Ñ Ð¿ÑоÑил в докÑменÑаÑиÑÑа Ñи за ÑигÑÑноÑÑ: AES-128, ECMA-376 Standard Encryption, деÑиваÑÐ¸Ñ Ð½Ð° клÑÑове по SHA-1 Ñ 50 000 иÑеÑаÑии. ТвÑÑдение, коеÑо издÑÑжа на пÑеглед, ÑÑÑÑва повеÑе Ð¾Ñ Ð¾Ð¿ÑимиÑÑиÑно Ñакова, коеÑо Ñе пÑÐ¾Ð²Ð°Ð»Ñ Ð¿Ñи одиÑ.
ÐаÑледÑÑвениÑÑ XLS пÑÑ: RC4 Ð¸Ð·Ñ Ð¾Ð´, RC4 и XOR обÑаÑно вÑÑÑе
BIFF инÑеÑÑейÑÑÑ Ð¸Ð¼Ð° пÑоÑивоположна ÑоÑма. ÐеговоÑо ÑиÑÑиÑане е по-ÑÑаÑо и по-Ñлабо, но пÑлниÑÑ ÑикÑл е завÑÑÑен: Ñова, коеÑо запиÑва, Ñой може да пÑоÑеÑе обÑаÑно. ÐаÑÑÑойванеÑо на EncryptionPassword пÑеди SaveAs генеÑиÑа RC4-ÑиÑÑиÑан .xls Ñайл ÑÑез меÑ
анизма FilePass на BIFF, а Open Ñ Ð¿Ð°ÑамеÑÑÑ Ð·Ð° паÑола ÑеÑе и ÑÑиÑе наÑледÑÑвени ÑÑ
еми â?RC4, RC4 CryptoAPI и дÑевнаÑа XOR обÑÑÑкаÑиÑ:
var
Writer, Reader: IXLSWorkbook; // interface refs: no manual Free
begin
Writer := TXLSWorkbook.Create;
Writer.Sheets.Add.Cells.Item[1, 1].Value := 'Confidential';
Writer.EncryptionPassword := 'S3cret!';
Writer.SaveAs('confidential.xls');
Reader := TXLSWorkbook.Create;
if Reader.Open('confidential.xls', 'S3cret!') > 0 then
Writeln(Reader.Sheets[1].Cells.Item[1, 1].Value); // Entries are 1-based
end;
```
RC4 е оÑÑаÑÑла кÑипÑогÑаÑÐ¸Ñ Ð¸ никога не ÑÑÑбва да заÑиÑава данни, коиÑо Ð¸Ð¼Ð°Ñ Ð·Ð½Ð°Ñение днеÑ; единÑÑвенаÑа Ð¼Ñ Ð¾ÑÑанала ÑÑойноÑÑ Ðµ ÑÑвмеÑÑимоÑÑÑа ÑÑÑ ÑиÑÑеми, коиÑо вÑе оÑе обменÑÑ .xls. СÑÑанаÑа на ÑеÑене обаÑе е много Ñенна пÑи мигÑаÑÐ¸Ñ Ð½Ð° данни. ÐаÑиÑен Ñ Ð¿Ð°Ñола наÑледÑÑвен Ñайл Ñе оÑваÑÑ Ñ Open(FileName, Password), пÑеминава пÑез моÑÑа кÑм модела OOXML и Ñе заÑиÑава оÑново пÑез AES пÑÑÑ â?еднопоÑоÑно надгÑаждане, коеÑо ÑабоÑи без Excel никÑде по веÑигаÑа. Ðа ÑиÑÑиÑани доÑÑавки в големи обеми бележкиÑе за пÑопÑÑкаÑелна ÑпоÑобноÑÑ Ð¿Ñи Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ Ð½Ð°ÑаÑа ÑÑаÑÐ¸Ñ Ð·Ð° поÑоково пиÑане за пакеÑни Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð²Ð°Ð¶Ð°Ñ Ð·Ð° ÑазаÑа на изгÑаждане на ÑÑдÑÑжаниеÑо, коÑÑо Ñе ÑлÑÑва пÑеди ÑиÑÑиÑанеÑо.
ШиÑÑиÑанеÑо и заÑиÑаÑа не Ñа ÑÑпеÑниÑи
ÐÑе една ÑоÑка, коÑÑо Ñи ÑÑÑÑва да Ñе ÑÑоÑни, ÑÑй каÑо Ñе поÑвÑва в моменÑа, в койÑо нÑкой пÑоÑеÑе пÑедÑпÑеждениеÑо в наÑалоÑо на Ñази ÑÑÑаниÑа каÑо âзаÑиÑаÑÐ?е безполезнаâ? Ð¢Ñ Ð½Ðµ е. ШиÑÑиÑанеÑо и заÑиÑаÑа оÑговаÑÑÑ Ð½Ð° ÑазлиÑни вÑпÑоÑи и Ñе допÑÐ»Ð²Ð°Ñ ÑиÑÑо. ШиÑÑиÑанеÑо опÑÐµÐ´ÐµÐ»Ñ ÐºÐ¾Ð¹ може да оÑвоÑи Ñайла; заÑиÑаÑа опÑÐµÐ´ÐµÐ»Ñ ÐºÐ°ÐºÐ²Ð¾ може да пÑомени ÑиÑаÑел, койÑо веÑе е вÑÑÑе. ÐÑи ведомоÑÑиÑе за заплаÑи е ÑазÑмно да Ñе напÑавÑÑ Ð¸ двеÑе: да Ñе ÑиÑÑиÑа пакеÑÑÑ, Ñака Ñе Ñамо пÑиÑежаÑелÑÑ Ð½Ð° паÑолаÑа да го вижда, и да Ñе заклÑÑÐ°Ñ ÐºÐ»ÐµÑкиÑе Ñ ÑоÑмÑли, Ñака Ñе полÑÑаÑелÑÑ Ð´Ð° може да ÑилÑÑиÑа и ÑоÑÑиÑа, но не и ÑÐ¸Ñ Ð¾Ð¼Ñлком да пÑенапиÑва изÑиÑлениÑÑа. ÐÑеÑкаÑа не е в добавÑнеÑо на заÑиÑа. ÐÑеÑкаÑа е да Ñе оÑÑави нейноÑо пÑиÑÑÑÑвие да замеÑÑи ÑиÑÑиÑанеÑо, когаÑо изиÑкванеÑо е било повеÑиÑелноÑÑ.
СÑÑанаÑа на ÑÑÑ Ñанение нÑма пÑедпазна мÑежа и Ñова е по дизайн. ÐеÑиваÑиÑÑа на клÑÑа Ñ 50 000 иÑеÑаÑии ÑÑÑеÑÑвÑва, за да напÑави оÑгаÑванеÑо ÑкÑпо, и ниÑо в ÑÐ°Ð¼Ð¸Ñ Ñайл не аÑÑ Ð¸Ð²Ð¸Ñа ÑайнаÑа. ÐзгÑбена паÑола ознаÑава загÑбени данни. ÐенеÑиÑайÑе, доÑÑавÑйÑе и ÑÑÑ ÑанÑвайÑе Ñези паÑоли ÑÑÑ ÑÑÑаÑа диÑÑиплина, коÑÑо пÑилагаÑе кÑм иденÑиÑикаÑионниÑе данни за бази данни, и ÑиÑÑиÑанеÑо Ñе ÑвÑÑÑи ÑвоÑÑа ÑабоÑа.
ÐÑÑинÑкоÑо ÑиÑÑиÑане на Ñайлове е едно извикване в HotXLS. ÐиÑÑиплинаÑа е вÑв вÑиÑко около Ñова извикване: ÑÑÑ
ÑанениеÑо на паÑолаÑа, гÑаниÑаÑа Ñамо за запиÑ, коÑÑо пÑеÑи на HotXLS да оÑвоÑи оÑново ÑобÑÑÐ²ÐµÐ½Ð¸Ñ Ñи изÑ
од, и ÑвÑÑдениеÑо за алгоÑиÑÑма, коеÑо можеÑе да заÑиÑиÑе пÑи одиÑ. SaveAsEncrypted и наÑледÑÑвениÑÑ Ð´Ð²ÑпоÑоÑен пÑÑ Ñе доÑÑавÑÑ Ñ HotXLS Component, каÑо ÑабоÑÑÑ Ð²Ð³Ñадено в пÑоÑеÑи на Delphi и C++Builder без никаква авÑомаÑизаÑÐ¸Ñ Ð½Ð° Excel по ÑÐµÐ»Ð¸Ñ Ð¿ÑÑ.