Lucrul cu «românesc» Excel mânca


Lucrul cu „română“ Excel'em

Lucrul cu „română“ Excel'em

Descrierea tipurilor de obiecte folosite în exemple:

Ai versiunea rusă a Excel?

Se determină prezența versiunii ruse a Excel, după cum urmează:

Notă:
în Office97 LanguageSettings proprietate este lipsește

În continuare ne vom uita la tehnici de lucru cu „română“ Excel'em.

Lucrul cu proprietatea NumberFormat a obiectului Range

Dar, atunci când încercați să înregistrați formate din Delphi, se pare că NumberFormat și NumberFormatLocal se comportă identic, ceea ce corespunde NumberFormat NumberFormatLocal (ar fi mai bine invers :). Ie în versiunea rusă a toate dimensiunile trebuie să scrie „în limba rusă“ (poate fi chiar în NumberFormat, în VBA - nu poți).

Codul VBA (standard): în codul Delphi:

Formatare numere. Delimitatori. (DecimalSeparator, ThousendSeparator)

Și asta nu e tot! Du-te la setările Excel'ya „Tools / Options“, du-te la tab-ul „International“ și a vedea din nou „număr întreg de separare și părți fracționare“, „descărcare de separare“ și caseta de selectare „separatorii Utilizare sistem“. Ie utilizarea de separatoare de sistem nu poate garanta aplicarea corectă atunci când formatarea numerelor în Excel'e. Soluție: utilizați proprietatea ExcelApplication.International (descrisă mai jos). Mai mult decât atât, chiar și în cazul în care proprietatea este setată ExcelApplication.UseSystemSeparators = false și distincte de ExcelApplication.DecimalSeparator sistemică și ExcelApplication.ThousandsSeparator, ExcelApplication.International va funcționa corect.

Următoarele sunt exemple de muncă (sau nu funcționează), să ia configurația „standard“ pentru Windows în limba română: de la codul VBA (standard): în codul Delphi:

Notă:
Exemple de valoare Value2 sunt înregistrate în scopul de a preveni formatarea „on the fly“ de Excel'em. Deci, numărul de 123.45 înregistrate în valoarea va fi automat formatate Excel'em în formatul monedei, iar atribuirea valorii = Data vor fi transferate automat la formatul datei. Intrarea Value2 „percepută“ valoare ca o cameră dublă. Pentru detalii, consultați Ajutorul VBA pentru Excel'ya.

Soluții (folosind ExcelApplication.International):

puteți scrie o funcție pentru a prelua formatul datei pentru formatul Moneda:

Același principiu poate fi aplicat la timp și de alte tipuri. A se vedea, de asemenea, alte indexuri Properties International (o mulțime de ei acolo) în Ajutor VBA. De exemplu, pentru a obține formatul „principal“ (general) poate fi după cum urmează:

Notă:
stabilește formatul de bază poate fi încă stabilită scriind la NumberFormat „gol“ șir de caractere, adică indică faptul că nu există nici un format pentru numere (datele): Range.NumberFormat: = „“;

Din păcate, situația nu este mai bună și formatele de culoare. Ie culoare în Delphi poate fi setat numai în limba rusă: Lista de culori în limba rusă pe care le puteți specifica formatul: negru, rosu, verde, albastru, violet, galben, alb. Listă de mijloace modeste.

Formula pe foaia

Din fericire, lucrul cu proprietățile Formula și FormulaLocal în VBA și Delphi este identică și corespund numele lor. Aș dori să menționez doar un singur avertisment (care, întâmplător, se aplică și VBA) - în scris formulă „română“ ar trebui să ia în considerare sistemul ListSeparator variabil. De exemplu, dacă un utilizator pe un alt computer pentru a schimba standardul pentru Windows versiunea rusă a lui „;“ on "" (de exemplu, așa cum fac eu :), asignarea Range.FormulaLocal: = '= ROUND (A1 * B1; 2)'; nu va reuși! Prin urmare, ținând cont de „lista de separatorul“ ar trebui să fie scris după cum urmează:

Aici este un frumos și ușor de utilizat formule în engleză. Dar, uneori, este nevoie de a scrie formula unei matrice variante ...

Notă:
Variabile de sistem ListSeparator, DateSeparator descris în unitatea de sistem.

Înregistrarea formulelor Variant-Nogo matrice

Intrare Formula proprietate, FormulaLocal, Value, Value2 din Variant-Nogo matrice este identică cu Excel'e românesc și atunci când se lucrează la Delphi. Dar dacă vrem să inserați formule direct dintr-un fișier, acestea ar trebui să fie doar în limba română.

Notă:
Exemplul arată că înregistrarea de matrice Formula Variant-Nogo, FormulaLocal, valoare, Value2 nu conteaza ce stil de referințe utilizate: A1 și R1C1 funcționează identic. Dar acest lucru nu se aplică în cazul proprietăților și FormulaR1C1 FormulaR1C1Local, care iau formule numai în stilul R1C1.

Să începem înregistrarea subsol de creare macro (meniul Excel "Tools / Macro / Record New ..."). Acum, deschide pagina de setări (meniul "File / Page Setup ..."). Creați un subsol central „Foaie [Pagina] din [Pages] „font“ Arial „“ bold „Sized și cuvintele 8pt“ foaie «și» out «cu semnul» obișnuită „După“ macro de reducere a“obține

Ie atunci când sunt imprimate, vrem să vedem în subsol, în mijlocul afișează textul, de exemplu, „Pagina 1 din 5“.

Notă:
Dacă doriți să vedeți munca în macro acțiune (care a lucrat PrintPreview), asigurați-vă că pentru a enumera cel puțin unele date.

Atenție! Lungimea totală a textului din inferior sau superior (stânga + dreapta po_tsentru +) subsolurile nu trebuie să depășească 250 de caractere (ca într-o celulă).

Concluzie: când introduceți codurile de formatare din Delphi în Excel română trebuie introdus doar coduri de formatare din România. Unde pot să le iau? Aici este o listă de coduri de formatare, obținute de probă:

O altă experiență:

Lucrări! Ie Inscripția (Stil la clasa TFont în Delphi) fonturi pot fi sigur de a scrie în limba engleză. Sau înlocui codurile de formatare:

Notă:
pentru hrana animalelor linie în subsol sau utilizarea celulei Simola LF, codul ASCI 10 (# 10):

Atunci când se lucrează cu Excel'em românească din Delphi trebuie să respecte următoarele reguli:
  • la setarea formatului de a utiliza numai formatele românești de numere și date;
  • pentru culoare numere de formatare indică culoarea doar în limba rusă;
  • atunci când înregistrarea formulelor variante array utilizată formula numai română;
  • la crearea anteturilor și subsolurilor folosesc doar coduri de formatare din România;
  • să fie compatibil cu versiunea în limba engleză ar trebui să fie verificată LCID Excel'ya interfața care utilizatorul și să acționeze în consecință.

Nu am putut găsi documentația referitoare la aspectele descrise mai sus. Toate materialele sunt construite exclusiv pe propria lor experiență. Și din nou, nu a fost posibil să se verifice pe deplin versiunile în limba engleză a Windows și Office.

articole similare