Latest: Download Free Desktop Wallpapers of Chef Loony! | Series: AuthorRank? | Download MBT eBooks!

Mengekspor Dataset Ke Excel Melalui XML

0 komentar

Sekadar akal-akalan buat generate XML menggunakan TClientDataset. Kode ini sederhana dan telah ditulis agar semudah mungkin dibaca.

TClientDataset memiliki fitur untuk mengkonversi baris-baris data dan definis field dari sebuah TDataset ke Data Packet XML, sehingga bisa kita pake buat menggenerate data untuk dibaca oleh Microsoft Excel.

Karena sumber data adalah TDataset, kode berikut ini akan dapat menggenerate Data Packet XML dari berbagai sumber: ADO, Zeos, MyDAC, UniDAC, IBDataset, dsb. Pokoknya asalkan sumber data berupa turunan TDataset, Insya Allah bisa dikonversi.

* Fungsi ini menggunakan midas.dll, yang sebaiknya dicopy ke folder aplikasi
* Untuk aplikasi DLL-based (seperti UniGUI/Raudus module for ISAPI), midas.dll dicopy ke direktori System32.
* Sebagai alternatif midas.dll (dynamic lingking), bisa dicoba menggunakan unit midaslib, ditambahkan ke clausa uses.

BILA KESULITAN MEMBACA KODE BERIKUT, LIHAT VERSI YANG LEBIH RAPI DI :http://www.cenadep.org/2013/03/20/trik-mengekspor-dataset-ke-excel-melalui-xml/

function JadikanXMLKeExcel(Dataset: TDataset; FileName: TFileName): Boolean;{tambah ke uses: Provider, DBClient, midaslib }var  prov: TDataSetProvider;  cds : TClientDataSet; 
ls  : TStringList;  st  :
TMemoryStream; 
tmp : String; 
i,j : integer;
begin 
Result := False; 
if not Dataset.Active then raise Exception.Create('Dataset belum dibuka.'); 
if Dataset.IsEmpty then    raise Exception.Create('Data kosong.'); 
if FileExists(FileName) then    raise Exception.Create('File sudah ada.'); 
if lowercase(ExtractFileExt(FileName))<>'.xml' then   
raise Exception.Create('File harus berekstensi XML.'); 

prov  := TDataSetProvider.Create(Application); 
cds   := TClientDataSet.Create(Application); 
try   
prov.dataset := Dataset;   
cds.SetProvider(prov);   
cds.Open;   
st := TMemoryStream.Create;   
try     
st.Clear;     
cds.SaveToStream(st, dfXML);     
st.Position := 0;     
ls    := TStringList.Create;     
try       
ls.LoadFromStream(st);       
tmp := ls.Text;       
i := pos('<METADATA>', UpperCase(tmp));       
j := pos('</METADATA>', UpperCase(tmp))+length('</METADATA>');       
Delete(tmp,i,j-i);       
ls.Text := tmp;       
ls.SaveToFile(FileName);       
Result := FileExists(FileName);     
finally       
ls.Free;     
end;   
finally     
st.Free;   
end; 
finally   
prov  .Free;   
cds   .Free; 
end;
end;


Contoh penggunaan:
procedure TForm3.Button1Click(Sender: TObject);
begin 
MyQuery1.Open; 
JadikanXMLKeExcel(MyQuery1, 'c:\tested2.xml');
end;


Referensi: KPDI

Tidak ada komentar:

  • MBT Icons and buttons

    Icons and Buttons

    Our resources have been successfully downloaded over 10K times and found almost every where. Get yours!

  • choosing webhost for a blog

    Why HostGator?

    Learn Why we chose HostGator as our Web Host and find discount coupons to kick start your blog today!

  • SEO Settings for blogger

    ALL IN ONE SEO PACK 2012

    Learn every single SEO tip that will boost your blog's ranking and organic traffic. We got them all!

  • Blogger widgets and plugins

    Visit MBT's Blogger LAB

    Why not take a tour of all great Blogger widgets published so far? You Name it we have it!

  • become a six figure blogger!

    Become a SIX FIGURE BLOGGER

    Learn what it takes to become a successful entrepreneur and build a living online!