Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Struktura xls-a (Excell), upis, citanje... ??

[es] :: Pascal / Delphi / Kylix :: Struktura xls-a (Excell), upis, citanje... ??

[ Pregleda: 3190 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Srdjan_exe
Srdjan Pavlovic

Član broj: 117082
Poruke: 60
213.137.127.*



Profil

icon Struktura xls-a (Excell), upis, citanje... ??17.12.2006. u 01:25 - pre 210 meseci
Moze li neko da objasni kakva je tacno struktura podataka (kako su podaci organizovani)
u xls fajlovima, i ono osnovno, kako se vrsi upis u pojedina polja, kako se cita
iz polja i kako se pretrazuju? Ako moze neko da uploaduje ako ima neki vec
gotov primer ovoga u Delphiju (po mogucstvu da radi sa TurboD 2006), ili
da napise mali primer. Samo ono osnovno za pocetak.

Hvala.
IN VINO VOMITUS
 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
62.108.111.*



+2 Profil

icon Re: Struktura xls-a (Excell), upis, citanje... ??17.12.2006. u 08:26 - pre 210 meseci
za pocetak (za "ono osnovno") pogledaj:
http://www.elitesecurity.org/t217226-0#1288016
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Struktura xls-a (Excell), upis, citanje... ??18.12.2006. u 07:45 - pre 210 meseci
> kako DIREKTNO raditi sa Exel tabelom, ljudi, to me zanima, siguran sam da moze
> i da je jednostavno,

Možeš preko OLEa, slao sam primere. Možeš i pomoću specijalizovanih komponenti koje direktno rade sa office formatom, zaboravio sam kako se zovu pa potraži na netu.
 
Odgovor na temu

chips
Blazin Srdjan

Član broj: 14803
Poruke: 342
212.200.78.*



Profil

icon Re: Struktura xls-a (Excell), upis, citanje... ??18.12.2006. u 19:58 - pre 210 meseci
Ovo sam pisao pre par godina, pa ako mozda ti pomogne. Program je otvarao excel i kreirao tabelu.
Mozda ti pomogne. Verovatno je moglo i bolje, ali....


procedure TWG4.BitBtn1Click(Sender: TObject);
var
{Ovo je za druge razrede prvo polugodiste}
Template, NewTemplate, ItemIndex: OleVariant;
T: Table;
odel,godin:String;
suma21,suma31,suma41,suma51:Real;
vrsta,i,j,j2,j3,BrDjaka21, br2,br3,br4, BrDjaka31, BrDjaka41:Integer;

// podesi slova za 1
procedure setfont;
begin
WordFont1.ConnectTo(WordDocument.Sentences.Get_Last.Font);
WordFont1.Size := 8;
WordFont1.Name := 'Arial';
end;

begin
vrsta:=4;
godin:=ComboBox1.Text;
try
Template:= EmptyParam;
NewTemplate := True;
ItemIndex :=1;
try
WordApplication.Connect;
except
MessageDlg('Greska...', mtError, [mbOK], 0);
Abort;
end;
WordApplication.Visible :=True;
WordApplication.Caption :='STATISTIKA U;ENIKA';
{Create new document}
Template := EmptyParam;
NewTemplate := False;
WordApplication.Documents.Add(Template, NewTemplate,EmptyParam, EmptyParam);
{Assign WordDocument component}
WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));
setfont;
WordDocument.Range.InsertAfter('USPEH U;ENIKA U PRVOM POLUGODI[TU');
T := WordDocument.Tables.Add(WordDocument.Range,22,12,EmptyParam,EmptyParam);

//**********OVO JE ZA DRUGE RAZREDE****************
T.Cell(1,1).Merge(T.Cell(1,12));
T.Cell(1,1).Width:=460;
T.Cell(1, 1).Range.Text := 'Uspeh u;enika na prvom polugodi[tu';
T.Cell(2,1).Range.Text:='predmet';
T.Cell(2,2).Range.Text:='srpski';
T.Cell(2,3).Range.Text := 'ma\arski';
T.Cell(2,4).Range.Text := 'likovna k';
T.Cell(2,5).Range.Text := 'muzi;ko';
T.Cell(2,6).Range.Text := 'prir.i.dr.';
T.Cell(2,7).Range.Text := 'pozn.pri';
T.Cell(2,8).Range.Text := 'pozn.dr';
T.Cell(2,9).Range.Text := 'matemat';
T.Cell(2,10).Range.Text := 'fizicko';
T.Cell(3,1).Range.Text := 'razred';
PP2();
Razredi();
for j:=1 to 5 do
begin
for br2:=1 to 11 do
begin
BrDjaka21:=0;
suma21:=0.0;
MBTable1.First;
while not MBTable1.Eof do
begin
if (MBTable1.FieldByName('Odeljenje').AsString = S[j]) and (MBTable1.FieldByName('Skolska').AsString = godin) then
begin
suma21:=suma21 + MBTable1.FieldByName(p2[br2].predmet).AsFloat;
INC(BrDjaka21);
end;
MBTable1.Next;
end;//while
if BrDjaka21 <> 0 then
begin
suma21:=suma21/BrDjaka21;
p2[br2].sr:=suma21;
T.Cell(vrsta,br2+1).Range.Text:= FloatToStr(suma21);
end;
end;
if BrDjaka21 > 0 then
begin
T.Cell(vrsta,1).Range.Text:= '2'+ S[j];
INC(vrsta);
end;
end;
//*************************TRECI****************************************
for j2:=1 to 5 do
begin
for br3:=1 to 11 do
begin
BrDjaka21:=0;
suma21:=0.0;
MBTable2.First;
while not MBTable2.Eof do
begin
if (MBTable2.FieldByName('Odeljenje').AsString = S[j2]) and (MBTable2.FieldByName('Skolska').AsString = godin) then
begin
suma21:=suma21 + MBTable2.FieldByName(p2[br3].predmet).AsFloat;
INC(BrDjaka21);
end;
MBTable2.Next;
end;//while
if BrDjaka21 <> 0 then
begin
suma21:=suma21/BrDjaka21;
p2[br3].sr:=suma21;
T.Cell(vrsta,br3+1).Range.Text:= FloatToStr(suma21);
end;
end;
if BrDjaka21 > 0 then
begin
T.Cell(vrsta,1).Range.Text:= '3'+ S[j2];
INC(vrsta);
end;
end;
///////////////////////cetvrti/////////////////////////////
for j3:=1 to 5 do
begin
for br4:=1 to 11 do
begin
BrDjaka21:=0;
suma21:=0.0;
MBTable3.First;
while not MBTable3.Eof do
begin
if (MBTable3.FieldByName('Odeljenje').AsString = S[j3]) and (MBTable3.FieldByName('Skolska').AsString = godin)then
begin
suma21:=suma21 + Form2.MBTable8.FieldByName(p2[br4].predmet).AsFloat;
INC(BrDjaka21);
end;
MBTable3.Next;
end;//while
if BrDjaka21 <> 0 then
begin
suma21:=suma21/BrDjaka21;
p2[br4].sr:=suma21;
T.Cell(vrsta,br4+1).Range.Text:= FloatToStr(suma21);
end;
end;
if BrDjaka21 > 0 then
begin
T.Cell(vrsta,1).Range.Text:= '4'+ S[j3];
INC(vrsta);
end;
end;
////////////////////////////////////////////////////////////
except
on E: Exception do
begin
ShowMessage(E.Message);
WordApplication.Disconnect;
end;
end;

Sto puta sam ti SRPSKI rekao:
ono što jednom crack-uješ,
ne možeš više da patch-uješ!
 
Odgovor na temu

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 108
*.232.eunet.yu.

ICQ: 156892888


+1 Profil

icon Re: Struktura xls-a (Excell), upis, citanje... ??23.12.2006. u 02:12 - pre 210 meseci
Primer za citanje XLS fajla. Vrednosti iz celija smestene su u TStrings. Na slican nacin mozes obraditi i upis u XLS file.

Code:


uses 
ComObj;

procedure XlsToStrings(Lst:TStrings; AXLSFileName: TFileName);
const
  xlCellTypeLastCell = $0000000B;
var
  XLApp, Sheet: OLEVariant;
  RangeMatrix: Variant;
  x, y, k, r: Integer;
  s:string;
begin
  XLApp := CreateOleObject('Excel.Application');
  try
    Lst.BeginUpdate;
    Lst.Clear;
    XLApp.Visible := False;
    XLApp.Workbooks.Open(AXLSFileName);
    Sheet := XLApp.Workbooks[ExtractFileName(AXLSFileName)].WorkSheets[1];
    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
    x := XLApp.ActiveCell.Row;
    y := XLApp.ActiveCell.Column;
    RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
    k := 1;
    repeat
      for r := 1 to y do
      begin
       s:=RangeMatrix[K, R];
       Lst.Add(Format('%d,%d = %s',[k,r,s]));
      end;
      Inc(k, 1);
    until k > x;
    RangeMatrix := Unassigned;

  finally
    Lst.EndUpdate;
    if not VarIsEmpty(XLApp) then
    begin
      XLApp.Quit;
      XLAPP := Unassigned;
      Sheet := Unassigned;
    end;
  end;
end;


[Ovu poruku je menjao marcha dana 23.12.2006. u 03:22 GMT+1]
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Struktura xls-a (Excell), upis, citanje... ??

[ Pregleda: 3190 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.