This Blog

Syndication

News

Awards

Microsoft MVP Logo
Grab this badge here!

Certificates

Transcript ID#: 6724122
Brainbench ASP.NET Certificate
 
Brainbench ASP.NET 2.0 Certificate
 
Brainbench .NET Framework 2.0 Certificate

Ahmad Masykur

var myObject = { "languages" : [ "C#", "VB.NET", "ASP.NET", "Javascript", "SDCC", "Assembler" ] }; //

Membuat File Excel Saat Runtime dari ASP Classic

Berikut ini adalah trik sederhana untuk membuat file Microsoft Excel menggunakan ASP Classic. Pada Microsoft Office 97 dan yang lebih baru dapat menginterpretasikan halaman HTML. Sebuah tabel direpresentasikan dalam sheet sebagai baris dan kolom. Trik ini dapat digunakan sebagai penampil laporan (report viewer) dengan client Microsoft Office. Dengan menggunakan trik ini, file excel yang dihasilkan dapat dimanipulasi sebagaimana file excel biasa.

Keterbatasan dari trik ini adalah file yang dihasilkan tidak bisa lebih dari satu sheet dalam satu workbook.

Berikut contoh untuk membuat laporan sederhana dengan memanfaatkan file excel pada ASP Classic

<%@ language=vbscript %> 
<% 
response.buffer = true 
response.ContentType = "application/vnd.ms-excel" 
response.AddHeader "content-disposition", "inline; filename=dynamic.xls" 
%> 
<html xmlns:x="urn:schemas-microsoft-com:office:excel" > 
<head> 
<% Response.Write "<!--[if gte mso 9]>" %> 
<xml><x:ExcelWorkbook> 
<x:ExcelWorksheets> 
<x:ExcelWorksheet> 
<x:Name><% Response.Write(Year(Now()) & "-" & Month(Now()) & "-" & Day(Now())) %></x:Name> 
<x:WorksheetOptions> 
<x:Print> 
<x:ValidPrinterInfo/> 
</x:Print> 
</x:WorksheetOptions> 
</x:ExcelWorksheet> 
</x:ExcelWorkbook> 
</xml> 
<% Response.Write "<![endif]-->" %> 
<title>Excel Doc</title> 
</head> 
<body> 
<table border="1" cellpadding="1" cellspacing="1"> 
<tr> <td colspan="7" style='font-size: x-large; font-weight: bold; text-align: center;'>Laporan Penjualan</td> </tr> 
<tr> <td colspan='7'style=' font-size: large; font-weight: bold; text-align: center;'>Tanggal: <% Response.Write(Day(Now()) & ' ' & MonthName(Month(Now())) & ' ' & Year(Now())) %></td> </tr> 
<tr> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>No</td> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>Kode Item</td> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>Nama Barang</td> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>Qty</td> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>Unit</td> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>Harga Satuan</td> 
<td style='background-color: navy; color: white; text-align: center; font-weight: bold'>Total Harga</td> 
</tr> 
<tr> <td>1</td> <td>KM29</td> <td>Mie Gurih Goreng</td> <td><% Randomize(Time()) Response.Write cint(Rnd(100)*100) %></td> <td>Box</td> <td>30000</td> <td>=D4*F4</td> </tr> 
<tr> <td>2</td> <td>DR01</td> <td>Kecap Manis XYZ</td> <td><% Response.Write cint(Rnd(100)*100) %></td> <td>Botol</td> <td>20000</td> <td>=D5*F5</td> </tr> 
<tr> <td>3</td> <td>YU89</td> <td>Kacang Dua Ayam</td> <td><% Response.Write cint(Rnd(100)*100) %></td> <td>Box</td> <td>50000</td> <td>=D6*F6</td> </tr> 
<tr> <td>4</td> <td>SA12</td> <td>Aque Botol 1 Liter</td> <td><% Response.Write cint(Rnd(100)*100) %></td> <td>Box</td> <td>48000</td> <td>=D7*F7</td> </tr> 
<tr> <td></td> <td></td> <td>Total</td> <td></td> <td></td> <td></td> <td>=SUM(G4:G7)</td> </tr> 
</table> 
</body> 
</html> 
<% 
response.flush 
response.end 
%>

Pada contoh di atas, response.ContentType = "application/vnd.ms-excel" digunakan untuk mengasosiasikan data yang ditransfer sebagai dokumen MS Excel. Dan response.AddHeader "content-disposition", "inline; filename=dynamic.xls" digunakan untuk memberikan nama file sesuai dengan format nama Microsoft Excel dengan ekstensi .xls, bukan nama halaman ASP. Pada akhir halaman, terdapat perintah response.flush untuk mengirimkan semua data ke client dan ditutup dengan response.end untuk mengakhiri hubungan dengan client.

Isi dari halaman dapat disesuaikan dengan kebutuhan. Pada contoh di atas, data masih dinamis, hanya tanggal diambil dari tanggal sistem dan quantity barang diambil secara acak.

Share this post: | | | |
Published Aug 25 2007, 02:24 PM by cahnom
Filed under: ,

Comments

 

agusto said:

Dulu gw juga pernah menggunakan cara ini dulu membuat report di asp. Cara nya kita buat dulu template nya di excel dan setelah itu kita lihat pattern data mana yang bisa kita looping di asp.

August 28, 2007 12:45 PM