Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

SEPUTAR MEMBUAT LAPORAN DENGAN PHP

gmn si caranya, membuat laporan dalam bentuk office dengan mudah di PHP,,,,,,,,?
Tlng di bantu ya sm

Tanggapan

  • edited August 2013
    elo bikin aplikasi php dimana ?

    di server yg elo kelola sendiri ?
    atau pake server shared hosting yg manajemen nya ditangan orang lain ?

    sebenernya intinya sama, pake aplikasi pihak ketiga
    cuma bentuknya yg beda
    beban dan load prosesnya juga beda
  • sory mbok,
    maklum pemula,


    Thanks atas masukanya,,,,
  • DI PT PLN,
    trus, yg kelola gua jg,

    Nama aplikasi nya apa ya, boo,,,?
  • edited August 2013
    yg gw pake : libreoffice

    http://www.libreoffice.org/
    http://en.wikipedia.org/wiki/LibreOffice

    jalan di *nix dan win
    lisensi LGPL v3

    itu aplikasi suite semacam microsoft office
    jadi mesti di install

    cuma punya fasilitas konversi dokumen lewat perintah command line
    ini yg dimanfaatkan utk konversi pake php

    template xml -> php -> fungsi exec() / passthru() / system() -> perintah CLI -> libreoffice -> office document

    format output yg pernah gw bikin : pdf, xlsx, xls, docx, doc, pptx, ppt
  • Ok Manatap,

    ThanksBoo
  • edited August 2013
    fyi :

    ini contoh potongan script konversi pake libreoffice 4.0,
    web server pake apache,
    os windows

    $config_libreoffice_path='C:\\Program Files\\LibreOffice 4.0\\program\\soffice.exe';
    $config_temp_dir='C:\\temp';

    header('Expires: Tue, 1 Jan 1980 00:00:00 GMT');
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');

    pdf :
    header('Content-Disposition: attachment; filename="'.$fname.'.pdf"');
    header('Content-Type: application/pdf');
    exec('"'.$config_libreoffice_path.'" -headless -convert-to pdf -outdir "'.$config_temp_dir.'" "'.$config_temp_dir.'\\'.$fname.'.xml"');
    readfile($config_temp_dir.'\\'.$fname.'.pdf');

    xls :
    header('Content-Disposition: attachment; filename="'.$fname.'.xls"');
    header('Content-Type: application/vnd.ms-excel');
    exec('"'.$config_libreoffice_path.'" -headless -convert-to xls:"MS Excel 97" -outdir "'.$config_temp_dir.'" "'.$config_temp_dir.'\\'.$fname.'.xml"');
    readfile($config_temp_dir.'\\'.$fname.'.xls');

    doc :
    header('Content-Disposition: attachment; filename="'.$fname.'.doc"');
    header('Content-Type: application/vnd.ms-word');
    exec('"'.$config_libreoffice_path.'" -headless -convert-to doc:"MS Word 97" -outdir "'.$config_temp_dir.'" "'.$config_temp_dir.'\\'.$fname.'.xml"');
    readfile($config_temp_dir.'\\'.$fname.'.doc');



    cara manual bikin template xml nya :
    - bikin dulu dokumen yg dimau pake microsoft office
    misal bikin surat undangan, pake microsoft word

    Kepada : {KEPADA}
    di {TEMPAT}

    Isi surat

    Mengetahui,
    {PEJABAT}

    - format sesuai kebutuhan
    - simpan jadi file doc (kalo butuhnya doc / pdf)
    - tutup microsoft word
    - buka file doc pake libreoffice writer, save as jadi file .fodt
    - tutup libreoffice writer
    - rename file .fodt jadi .xml (karena isinya emang xml, kagak di rename pun juga kagak masalah)
    - buka pake notepad atau text editor lain buat memeriksa doang,
    elo bakal ketemu text sejenis / kira-kira :

    <text:p text:style-name="P4">Kepada : {KEPADA}</text:p>
    <text:p text:style-name="P2">di {TEMPAT}</text:p>
    <text:p text:style-name="P1"/>
    <text:p text:style-name="P1">Isi surat</text:p>
    <text:p text:style-name="P1"/>
    <text:p text:style-name="P3">Mengetahui,</text:p>
    <text:p text:style-name="P3">{PEJABAT}</text:p>

    - letakan file xml di folder yg bisa diakses php, misal di : C:\template\

    selesai dah bikin template nya



    cara proses template sebelum di konversi jadi format dokumen yg dimau :

    $field=array('{KEPADA}', '{TEMPAT}', '{PEJABAT}');
    $replace=array('Budi', 'Jakarta', 'Amir');
    $fname='surat';

    $template=file_get_contents('C:/template/nama_template.xml');
    file_put_contents($config_temp_dir.'\\'.$fname.'.xml', str_replace($field, $replace, $template));

    file "surat.xml" siap di konversi jadi file doc / pdf pake CLI nya libreoffice spt script awal



    silakan elo gali lebih dalam, kemungkinan yg bisa elo kembangkan (dan emang bisa)


    - template excel : ms excel .xls -> libreoffice calc .fods

    - pembuatan template .doc / .xls diserahkan ke operator + ada form upload template
    konversi .doc / .xls -> .fodt / .fods via script php + CLI libreoffice
    prosesing replace php dinamis tergantung field yg ada

    - doc / pdf multi halaman, format berulang maupun tidak berulang

    - xls multi row, multi sheet

    dll



    untung :
    - super fleksible, pengembangan silakan gali sendiri
    - bisa memisahkan tugas pembuatan template dan koding script
    - hasil bagus, kalo pun layout ada melesetnya sangat minim
    - ringan di php nya, lama proses tergantung ukuran dokumen

    rugi :
    - cuma bisa dipake di server sendiri
    - mesti install aplikasi suite 300MB
  • edited August 2013
    btw,

    umumnya pemikiran programmer kalo bikin laporan pdf / doc / xls
    pake tambahan librari script php
    - pdf : fpdf dan sejenisnya
    - word : phpdocx (bayar)
    - excel : phpexcel

    untung :
    - bisa dipake di shared hosting dan server sendiri
    - bisa utk generate dokumen dengan format profesional

    rugi :
    - fpdf, ribet ngatur layout, biarpun pake librari tambahan lagi html2pdf
    - phpdocx, phpexcel : hasil output banyak melesetnya dari format yg dimau
    - beban konversi berat di php nya, menguras resource, terutama cpu dan memori ... namanya juga interpreter
    - sulit bikin template yg bisa diserahkan pekerjaannya ke operator

    kalo dokumen besar, libreoffice prosesnya juga lama
    tapi masih lebih baik dibanding librari php berupa script,
    soalnya libreoffice itu aplikasi desktop, bukan script utk interpreter

    kalo sudah sama-sama harus menghasilkan dokumen besar
    baik librari script php atau libreoffice harus mengubah seting time limit eksekusi php jadi 0 (tanpa batas waktu)
    tapi keluaran lebih cepat dihasilkan dari libreoffice
    librari script php bisa hang kalo dokumen terlalu besar

    librari script php cuma mungkin dipake kalo pake shared hosting
    itu pun kemungkinan akun bakal di ban oleh admin server karena menguras resource jika harus menghandle dokumen besar

    kalo server sendiri referensi gw tetep lebih baik pake libreoffice
    kecuali ada alternatif aplikasi desktop lain yg lebih baik



    alternatif lain yg sering dipake :
    - header xls / doc
    - isinya html

    untung :
    - sederhana, kagak butuh librari / aplikasi tambahan lain
    - bisa dipake di shared hosting dan server sendiri
    - hanya html, seperti generate halaman web biasa
    - ringan, tapi bisa jadi berat kalo datanya banyak

    rugi :
    - sulit membuat halaman dokumen laporan yg profesional
    - editing nya tetep konten html, bukan format aslinya word / excel
    - multi page di word dan multi sheet di excel lebih ruwet buatnya
    - sama ruwet nya kalo mau buat perulangan header tiap halaman yg multi page di word
    - html tidak bisa utk menghasilkan formula di excel
    - pembuatan template sulit diserahkan ke operator, karena paling tidak operator harus tahu cara menulis tag-tag html
  • bisa di jelaskan lebih detail lagi gak mas boo, cara menggunakan libre office nya??
    saya belum pernah menggunakannya.
    apakah bisa langsung di convert ke php??
  • libreoffice cuma bisa dipake di server yg milik sendiri dan dikelola sendiri
    bukan server shared hosting / vps

    kalo dedicated masih dimungkinkan utk install

    kondisi nya spt itu atau kagak ?
  • oh.. kalau saya bukan server milik sendiri.
    jadi pakai apa dong kalau mau bikin report word dengan php?
  • kalo model shared hosting ya pake phpdocx ... tapi itu bayar
    dan load nya juga tinggi, kemungkinan bakal di suspend ama admin server

    satu-satu nya cara yg kesisa content html tapi pake header doc
  • <?php
    $sr = "sr";

    $filename = sprintf("report_dokumen.doc",$sr);
    $srnumber = sprintf ("2-%10s", $sr);
     
     
    header("Content-Type: application/vnd.ms-word");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("content-disposition: attachment;filename=$filename");
     

    echo "<table border=1>
            <tr>
                <td><b>field1</b></td>
                <td><b>field2</b></td>
            </tr>
          </table>";
          
    ?>
  • caranya seperti itu ya yang  content html ??
  • kalau pas download word nya lalu pas di buka, kan tmpilannya web layout, kalau mau tmpilannya print layout gmna ya??
  • lha itu salah satu kekurangan nya kalo pake model header doc konten html ...
    kagak bisa di apa-apain ...
  • edited October 2013
    Alternatif lain kalo server sendiri mungkin bisa pake Jasper report.
    Format output nya juga cukup lengkap. Ada tools designer nya juga <iReport>.
  • edited October 2013
    Sebelum mengikuti tutorial ini, saya ingin memastikan beberapa hal.
    Menggunakan Jasper Report di php sebenarnya memanfaatkan php-javabridge. Dan di internet sudah ada beberapa tutorial yang membahas ini, bahkan ada blogger yang copy paste tutorial orang ditaro di blog nya sendiri :D
    Yang ingin saya sampaikan, jangan ikuti tutorial2 itu!!! karena tutorial mereka sudah obsolete, jadi baca tutorial php-java bridge hanya di diskusiweb kesayangan Anda (wkwkwkwk mekso :p).

    Langkah-langkah menggunakan Jasper Report di PHP
    • Download file Java.inc dan JavaProxy.php di url http://php-java-bridge.sourceforge.net/doc/download.php
    • Pastikan Anda menginstall java (instal JDK jangan cuma JRE).
    • Buat file report.php (nama filenya terserah), simpan di folder www/htdocs/apapun itu di web server Anda yang isinya seperti berikut. 
    // report.php
    require_once("lib/Java.inc");
    echo java("java.lang.System")->getProperties();

    Jalankan dari browser. Akan keluar seperti ini kira-kira:
    {java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=D:\JDK\jdk1.6.0_31\jre\bin, java.vm.version=20.6-b01, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, 
    // bla..bla..bla

    Sekarang tinggal buat file java untuk testing, kita akan coba buat sebuah method di java yang akan dipanggil dari php:

    // JasperReportsWrapper.java
    package javareport;
    import php.java.bridge.JavaBridgeRunner;
    public class JasperReportsWrapper {
    static final JavaBridgeRunner runner = JavaBridgeRunner.getInstance("8080");
    public String hello() {
    return "Hello World";
    }
     
    public static void main(String args[]) {
    try {
    runner.waitFor();
    System.exit(0);
    } catch (InterruptedException ex) {
    }
    }
    }

    Compile dan jadikan menjadi sebuah file jar dan jalankan.
    Balik lagi ke file report.php dan ubah menjadi seperti ini:
    // report.php
    require_once("lib/Java.inc");
    $java = new java("javareport.JasperReportsWrapper");
    echo $java->hello();

    Di browser akan keluar output:

    Hello World

    Selamat Anda sudah berhasil menjalankan method java dari php, tutorial selesai :D
  • Huhuhu, belum kelar pak tutorialnya, ubah file JasperReportsWrapper menjadi seperti ini:
    // JasperReportsWrapper.java
    package javareport;
     
    import java.io.File;
    import java.sql.*;
    import java.util.HashMap;
    import net.sf.jasperreports.engine.*;
    import net.sf.jasperreports.engine.export.JRXlsExporter;
    import php.java.bridge.JavaBridgeRunner;
     
    public class JasperReportsWrapper {
     
    static final JavaBridgeRunner runner = JavaBridgeRunner.getInstance("8080");
    private Connection connection;
     
    public JasperReportsWrapper() {
    connection = null;
    }
     
    public Connection getConnection() {
    return connection;
    }
     
    public Connection connect2DB() {
    Connection conn = null;
    try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/phpjavadb", "root", "");
    } catch (Exception e) {
    System.err.println("Method connect2DB() Exception: " + e.getMessage());
    }
    return conn;
    }
     
    public String saveReportToExcel(String query, String fileName, String fileXml) {
    try {
    File file = new File(fileXml);
    String path2JRXMLFile = file.getAbsolutePath();
    net.sf.jasperreports.engine.design.JasperDesign design = JasperManager.loadXmlDesign(fileXml);
    JasperReport report = JasperManager.compileReport(design);
    Statement st = connect2DB().createStatement();
    ResultSet rs = st.executeQuery(query);
    JRResultSetDataSource dataSource = new JRResultSetDataSource(rs);
    JasperPrint print = JasperManager.fillReport(report, null, dataSource);
    JRXlsExporter xlsExporter = new JRXlsExporter();
    xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
    xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, fileName);
    xlsExporter.exportReport();
    return "ok";
    } catch (Exception ex) {
    System.err.println("Method saveReportToExcel(String query, String fileName, String fileXml) Exception: " + ex.getMessage());
    }
    return "gagal";
    }
     
    public String saveReportToPDF(String query, String fileName, String fileXml) {
    try {
    File file = new File(fileXml);
    String path2JRXMLFile = file.getAbsolutePath();
    net.sf.jasperreports.engine.design.JasperDesign design = JasperManager.loadXmlDesign(fileXml);
    JasperReport report = JasperManager.compileReport(design);
    Statement st = connect2DB().createStatement();
    ResultSet rs = st.executeQuery(query);
    JRResultSetDataSource dataSource = new JRResultSetDataSource(rs);
    JasperPrint print = JasperManager.fillReport(report, new HashMap(), dataSource);
    JasperExportManager.exportReportToPdfFile(print, fileName);
    rs.close();
    return "ok";
    } catch (Exception ex) {
    System.err.println("Method saveReportToPDFString query, String fileName, String fileXml) Exception: " + ex.getMessage());
    }
    return "gagal";
    }
     
    public String saveReportToPDF(String fileName, String fileXml, HashMap parameter) {
    try {
    File file = new File(fileXml);
    String path2JRXMLFile = file.getAbsolutePath();
    JasperReport JRpt = JasperCompileManager.compileReport(path2JRXMLFile);
    JasperPrint JPrint = JasperFillManager.fillReport(JRpt, parameter, connect2DB());
    JasperExportManager.exportReportToPdfFile(JPrint, fileName);
    return "ok";
    } catch (Exception ex) {
    System.err.println("Method saveReportToPDF(String fileName, String fileXml, HashMap parameter) Exception: " + ex.getMessage());
    }
    return "gagal";
    }
     
    public static void main(String args[]) {
    try {
    runner.waitFor();
    System.exit(0);
    } catch (InterruptedException ex) {
    }
    }
    }


    Ok, jangan panik dulu, itu cuma beberapa method yang dibuat untuk kebutuhan export report nya.

    - method getConnection => cuma untuk return object class Connection aja.

    - method connect2DB => koneksi ke database.

    - method saveReportToExcel

      @param String query, String fileName, String fileXml

      Untuk export report ke excel.

    - method saveReportToPDF

      @param String query, String fileName, String fileXml

      Untuk export report ke pdf.

    - method saveReportToPDF

      @param String fileName, String fileXml, HashMap parameter

      Untuk export report ke pdf dengan parameter berbeda.

      ini dinamakan overloading method (di php gak ada cuy).

    Saya gak akan perpanjang tutorial ini dengan tutorial cara buat file jrxml menggunakan Jasper Report atau iReport (tools designer untuk pembuatan report menggunakan Jasper Report / iReport loh bukan iPad :p).
    Anda bisa mempelajari Jasper Report dan iReport di tutorial2 di internet (banyak banget tinggal googling).
    Yang perlu diperhatikan di project JasperReportsWrapper, memerlukan file jar sebagai berikut:
    - commons-beanutils-1.8.2.jar
    - commons-collections-3.2.1.jar
    - commons-digester-1.7.jar
    - commons-logging-1.1.jar
    - groovy-all-1.7.5.jar
    - iText-2.1.7.jar
    - jasperreports-4.0.2.jar (saya pake jasper report versi ini)
    - JavaBridge.jar
    - mysql-connector-java-5.1.13-bin.jar
    - poi-3.6.jar
    Semua file jar dapat di download di bundle jasper report, kecuali file JavaBridge.jar yang di download dari situs php java bridge dan file mysql-connector-java-5.1.13-bin.jar yang bisa di download di situsnya mysql, atau bagi yang menggunakan netbeans sebagai IDE, file mysql-connector sudah ada di lib nya netbeans.

    Saya akan anggap file jrxml sudah tersedia,
    note: file jrxml nya mesti di letakan sejajar dengan file JasperReportsWrapper.jar (lihat method getAbsolutePath di class JasperReportsWrapper).

    Sekarang balik lagi ke file report.php yang dibuat di awal, maka ubah file report.php menjadi seperti ini:
    // report.php
    require_once("lib/Java.inc");
    $java = new java("javareport.JasperReportsWrapper");
     
    $query = "SELECT * FROM person"; // sesuaikan table yang anda buat.
    $file_xml = "report_person.jrxml"; // sesuaikan dengan nama file yang anda buat
    $file_name = "report_person"; // sesuaikan dengan nama file yang anda buat
     
    $report_excel = $java->saveReportToExcel($query, $file_name.".xls", $file_xml);
    $report_pdf = $java->saveReportToPDF($query, $file_name.".pdf", $file_xml);
    if ($report_excel == 'ok') {
    echo "export report ke excel berhasil di jalankan<br/>";
    }
    if ($report_excel == 'ok') {
    echo "export report ke pdf berhasil di jalankan";
    }
  • Jasper report mendukung output format text, HTML, PDF, Excel, OpenOffice dan Word.
    DI class JasperReportsWrapper sudah ada output ke excel dan pdf,
    untuk output ke format text, HTML, OpenOffice dan Word buat sendiri ya,
    sama aja isinya, cuma tinggal ganti2 nama method nya aja ;)
  • edited October 2013
    ... bahkan ada blogger yang copy paste tutorial orang ditaro di blog nya sendiri :D ...
    curhat nih Dan ? :))

    gampar aja napa yang nyolong ... =))



    btw,
    install JDK nya di server yo ?
    lha sama dong, semodel libreoffice yg mesti install libre nya di server ...

    kalo shared apa bisa dilakukan ?

    * sori telat paham *
    Alternatif lain kalo server sendiri mungkin bisa pake Jasper report.
    Format output nya juga cukup lengkap. Ada tools designer nya juga <iReport>.
    pertanyaan sudah kejawab di posting sebelumnya

    catatan :
    kalo pake jasper mixing dengan koding java
    artinya, minimal harus paham java dan penggunaan tools nya



    silakan kalo ada yg mau nambah tutor cara lain yg bisa dipakai
  • :D banyak yg translate tutorial orang bule, ganti ke bhs indo, cuma gak di ubah gitu deh.

    Yupe, install jdk di server, btw dulu juga gw pernah bilang kalo ini butuh allow url fopen jadi on, tapi ternyata gak perlu, ya itu.. dulu ikutin tutorial2 di internet, banyak yg eksperiment tapi masih mentah, jadi bikin tersesat :D

    Pas coba-coba sendiri, ternyata php 5 dah built in untuk handle java, jadi gak perlu lagi ekstensi php_java.dll, ekstensi ini cuma dipake untuk php 4.

    Belajar nya bisa aja ala Bruce Lee, otodidak dan seperlunya, jadi cuma butuh belajar java cara bikin report pake jasper. Selebihnya meraba-raba gpp, gak ada yg ngelarang, yg penting report nya jadi wkwkwkwk.

    note:
    Untuk method saveReportToPDF yg kedua itu gw buat yang pake parameter, jadi kadang kan kita bikin report dengan parameter inputan yang di post.
  • kalau dengan libre office cara nya bagaimana dengan bahasa php
  • edited October 2013
    lha di atas pan sudah gw tulis semua ...

    - install dulu libreoffice di server

    - lalu bikin template dokumen nya,
    biasanya lebih familiar kalo pake ms office,
    jadi bikin aja template nya pake ms office
    pdf / doc -> ms word -> simpan jadi file .doc
    xls -> ms excel -> simpan jadi file .xls
    ppt -> ms powerpoint -> simpan jadi file .ppt

    - buka file template pake aplikasi libreoffice yg sesuai
    doc -> libreoffice writer -> simpan jadi file .fodt
    xls -> libreoffice calc -> simpan jadi file .fods
    ppt -> libreoffice impress -> simpan jadi file .fodp
    file .fodt , .fods , .fodp itu semua sebenernya file xml
    file template sudah siap dipake di php

    - koding php buat buka file template xml

    - koding php buat replace variabel yg di mau ( dicontoh gw bikin "variabel" pake {NAMA_VAR} ) dengan string yg bener

    - koding php buat simpan hasil replace jadi file temporari

    - koding php buat eksekusi libreoffice lewat cli pake exec()
    buat konversi file temporari jadi tipe file yg dimau
    jadi dah dokumen nya
  • edited October 2013
    lupa ...

    kapan hari si ableh bikin model (pake libreoffice juga)

    - web server di mesin A (linux)
    - libreoffice di install di mesin B (windows)
    - libreoffice punya listener service utk listen port tertentu

    soffice "-accept=socket,host=127.0.0.1,port=8080,tcpNoDelay=1;urp;" -headless -nodefault -nofirststartwizard -nolockcheck -nologo -norestore

    - convert via jaringan

    semestinya bisa saja kalo mesin A online di internet, bisa di akses lewat domain name / ip publik
    dan mesin B juga online di internet, juga bisa di akses lewat domain name / ip publik
    konversi bisa dilakukan via jaringan
    cuma prosesnya ...
    konversi via jaringan LAN pasti lebih lama dibanding kalo 1 mesin,
    konversi via jaringan internet pasti lebih lama dibanding lewat LAN
  • beh kalo emang jalan juga di *nix kenapa gak 1 server @-)
    kecuali web server nya jalan di shared hosting.

    Jadi cuma modal 1 server abal2 jalan di win trus dikasih ip public.

    btw bikin thread replikasi di mysql yuk, lagi oprek nih.
  • mbuh, mbah ableh ... :D
  • asli ga ngerti sedikitpun..
  • edited August 2014
    ga paham java jd mau coba pake libre office..

    jadi klo pake libre office itu lebih ringan ya gan ? klo server nya pake laptop gmn ? localhost doang

    ada yg pernah coba ? yg pernah coba paling byk udah brp baris data nya ?


    lg mau bikin laporan pake excel tapi baru coba pake header di phpnya, hasilnya masih ada yg salah...

    mestinya isinya angka misal "400580860869" tp di excel hasil exportnya "4.00581E+11" selain itu yg isinya teks doang bener semua
  • edited September 2014
    Saran saya sih kalau mau gampang pake yang header download aja kayag yang di atas, kalau pake java khan mesti di seting lagi di servernya. Cuman masalahnya file yang kita convert dari header/download wizard sulit untuk di proterksi, sedang menggunakan fasilitas lain kayag fPdf atau phpExcel, kita bisa lebih dalam customisasinya.

    400580860869 kan sama dengan 4.00581E+11 itu karena terlalu panjang angkanya dan pembulatan, hanya saja formatnya harus kita ubah bu. Biasanya untuk entrian angka yang nilainya terlalu panjang ubah saja ke format teks, biar lgsung nongol.
Sign In or Register to comment.