1. Pendahuluan Pencetakan laporan biasanya merupakan modul penting dalam sistem informasi manajemen, dan Excel telah banyak digunakan dalam pencetakan laporan karena fungsinya yang kuat, aplikasi yang fleksibel, dan keserbagunaan yang kuat.
Sistem informasi manajemen yang awal pada dasarnya dikembangkan menggunakan model client/server (C/S). Namun dengan meluasnya penerapan WWW, sistem informasi manajemen saat ini secara bertahap mulai beralih dari model C/S ke browser/server. (B /S) perubahan mode. Mode B/S memiliki banyak fitur yang tidak dapat ditandingi oleh mode C/S tradisional, seperti lebih terbuka, tidak bergantung pada perangkat lunak dan perangkat keras, nyaman untuk perluasan aplikasi dan pemeliharaan serta peningkatan sistem, dll. Kini mode ini menjadi mode komputasi pilihan untuk jaringan perusahaan. Awalnya digunakan dalam C/S Banyak perangkat lunak di Internet mulai dipindahkan ke mode B/S. Karena kekhasan mode B/S, fungsi pencetakan laporan Excel yang relatif mudah diterapkan di bawah C/S menjadi kesulitan di bawah B/S. Artikel ini memberikan metode umum yang lebih baik berdasarkan pengalaman yang dirangkum dalam proyek sebenarnya, dengan mengambil ASP sebagai contoh.
2. Implementasi fungsi Untuk mengilustrasikan permasalahan, berikut adalah contohnya. Platform sistemnya adalah Windows 2000+SQL Server 2000+IIS 5.0+ASP 3. Laporannya menggunakan Excel. Diperlukan untuk menghasilkan laporan statistik penjualan buku sesuai format laporan yang diberikan dan dapat dicetak.
2.1 Pembuatan template laporan Excel Pertama, buatlah template Excel (yaitu bentuk laporan yang akan dicetak) sesuai dengan format laporan yang diberikan. Tentunya data yang dihasilkan dari statistik dinamis dalam database harus dikosongkan. Laporan ini pertama kali digambar di Excel, lalu disimpan sebagai templat, dan disimpan di sini, di sini sebagai testbook1.xlt.
2.2 Pembuatan dan pencetakan laporan Excel Komponen Aplikasi Excel digunakan di sini, yang diinstal ke dalam sistem saat Excel diinstal. Operasi kami juga ditargetkan pada komponen ini.
(1) Buat objek Excel.Application
set objExcel=CreateObject("Excel.Aplikasi")
(2) Buka templat Excel
objExcel.Workbooks.Open(server.mappath("test")&"book1.xlt") 'Buka templat Excel
objExcel.Sheets(1).select 'Pilih halaman kerja
setel sheetActive=objExcel.ActiveWorkbook.ActiveSheet
(3) Operasi penambahan reguler Excel seperti sheetActive.range("g4").value=date() 'Yang ditambahkan di sini adalah waktu, tentu saja bisa berupa data apa pun yang Anda tentukan.
(4) Tambahkan catatan dalam database di Excel. Diasumsikan sudah ada kumpulan data adoRset, yang menyimpan data statistik yang dihasilkan oleh operasi Sql.
num=7 'Mulai dari baris ketujuh Excel
lakukan sampai adoRset.EOF 'Loop sampai data dalam kumpulan data ditulis
strRange="d"&num&":f"&num 'Setel luas satuan untuk diisi konten
sheetActive.range(strRange).font.size=10 'Setel ukuran font
sheetActive.range(strRange).WrapText=false 'Setel bungkus teks
sheetActive.range(strRange).ShrinkToFit=true 'Setel apakah akan secara otomatis beradaptasi dengan ukuran unit tabel
sheetActive.range(strRange).value=array(adoRset("bookid"),adoRset("bookname"),adoRset("author")) 'Isi data dalam kumpulan data ke dalam unit yang sesuai
angka=angka+1
adoRset.MoveNext
lingkaran
(5) Menyimpan dan memproses file laporan sementara Excel. Dalam pengoperasian sebenarnya, perlu diperhatikan bahwa setiap kali pengguna mencetak laporan, file Excel sementara digunakan alih-alih menentukan nama file secara kaku, karena jika nama file tetap adalah digunakan, hanya yang pertama Setelah pembuatan berhasil, operasi selanjutnya akan gagal karena file dengan nama yang sama sudah ada. Jadi kita perlu membuat nama file sementara dan tidak berulang setiap saat. Di sini kita dapat menggunakan fungsi getTemporaryFile() khusus untuk membuatnya, lalu menyimpannya dalam nama file variabel, dan menggunakan variabel filepos untuk mewakili jalurnya. file sementara.
Selain itu, jika file sementara ini tidak diproses, lama kelamaan akan menjadi file sampah. Oleh karena itu, saat setiap pengguna mengirimkan permintaan pencetakan laporan Excel, semua file pencetakan sementara yang dibuat sebelumnya di direktori sementara harus dihapus terlebih dahulu.
Kode utama untuk memproses file-file sementara adalah sebagai berikut:
fungsi getTemporaryFile(MyFileSystem)
dimtempFile,dotPos
tempFile=MyFileSystem.getTempName
dotPos=instr(1,tempFile,.")
getTemporaryFile=pertengahan(tempFile,1,dotPos)&"xls"
fungsi akhir
setel myFs=createObject("scripting.FileSystemObject")
filePos=server.mappath("test") & "tmp" 'Direktori sementara untuk menyimpan file pencetakan sementara
fileName=getTemporaryFile(myFs) 'Dapatkan nama file sementara
myFs.DeleteFile filePos&"*.xls" 'Hapus semua file cetak sementara yang awalnya dibuat di direktori ini
atur myFs=tidak ada
Kode penyimpanan untuk file sementara Excel adalah:
objExcel.ActiveWorkbook.saveas filePos&nama file
(6) Keluar dari aplikasi Excel
objExcel.berhenti
atur objExcel=Tidak ada
(7) Pencetakan laporan Excel Langkah sebelumnya telah menghasilkan laporan Excel. Untuk pencetakan pada langkah selanjutnya, ada dua strategi:
Opsi 1: Memberikan link ke file sementara laporan Excel yang dibuat di atas kepada pengguna. Pengguna dapat langsung mengklik untuk membuka laporan Excel di browser dan mencetaknya melalui fungsi cetak browser itu secara lokal untuk dicetak, dll. ditangani.
Opsi 2: Setelah membuat laporan Excel, muat langsung ke browser di sisi klien. Tentu saja, jika belum dimuat sepenuhnya, akan muncul pesan "Memuat, harap tunggu" dan kata lain.
2.3 Konfigurasi sistem dan tindakan pencegahan Meskipun kode di atas sangat sederhana, kesalahan sering terjadi jika tidak digunakan dengan benar dalam praktiknya, sehingga konfigurasi sistem dan tindakan pencegahan yang disebutkan di bawah ini sangat penting.
(1) Pastikan untuk memastikan kebenaran masukan kode di atas, jika tidak, jika terjadi kesalahan operasi, objek Excel akan tetap berada di memori dan akan sulit dihilangkan, menyebabkan panggilan berikutnya menjadi sangat lambat dan menghasilkan kesalahan Windows bahwa memori tidak dapat dibaca atau ditulis. Solusinya saat ini adalah dengan logout dari pengguna saat ini. Jika tidak berhasil, Anda hanya dapat melakukan reset.
(2) Pastikan untuk mengatur izin file asp yang bertanggung jawab atas fungsi pencetakan. Metodenya adalah: Dalam manajemen IIS, pilih file asp, klik kanan dan pilih "Properti"/"Keamanan File"/"Kontrol Akses dan Otentikasi Anonim". Di sini, IIS default untuk akses anonim, dan Anda harus memilih akses yang diautentikasi ( di sini adalah otentikasi dasar Kedua metode dapat digunakan dan otentikasi Windows terintegrasi, tetapi yang pertama tidak cukup aman), ini sangat penting, jika tidak, kesalahan akan terjadi pada aplikasi.
(3) Terkadang laporan dibagi menjadi beberapa halaman, dan kami ingin setiap halaman memiliki header yang sama. Kami memerlukan header untuk dicetak secara otomatis pada setiap halaman, yang dapat diatur dalam template Excel. Caranya sebagai berikut: Pilih menu "File"/"Page Setup"/"Worksheet", lalu masukkan jumlah baris pada header Anda pada "Top Title Row" (misalnya jika header adalah baris 1- 3, isi: $1:$3 ).
3. Singkatnya, kami telah memberikan contoh pembuatan dan pencetakan laporan EXCEL dalam mode B/S yang ditulis dalam ASP, yang telah diterapkan dengan baik dalam praktik. Fakta juga membuktikan bahwa meskipun kode contoh ini tidak sulit untuk ditulis, Anda harus memperhatikan konfigurasi sistem. Ini juga merupakan pengalaman yang diperoleh setelah kegagalan yang tak terhitung jumlahnya.