Saya menulis ini hanya karena bosan. Jika Anda menyukai ekstensi, jangan lupa kirimkan saya salinannya. Haha, terima kasih.
ps: Tesnya tidak efisien, haha~~~
[email protected] Salin PHP-nya konten ke papan klip
Kode PHP:
<?php
/**
*Kelas operasi Excel berbasis COM (PHP5.x)
*PHPer:TTR
*Tanggal:[24-05-2007]
*Ver:1.0.0
*Blog:[url]http://www.Gx3.cn[/url] [url]http://Gx3.cn[/url]
*QQ:252319874
*/
kelas Unggul
{
statis $instance=null;
pribadi $excel=null;
pribadi $buku kerja=null;
pribadi $workbookadd=null;
pribadi $lembar kerja=null;
pribadi $worksheetadd=null;
pribadi $sheetnum=1;
pribadi $sel=array();
pribadi $fields=array();
pribadi $maxrows;
pribadi $maxcols;
pribadi $namafile;
//Konstruktor
fungsi pribadi Excel()
{
$this->excel = new COM("Excel.Application") or die("Tidak Terhubung");
}
//Masuk kelas
fungsi statis publik getInstance()
{
if(null == diri::$instance)
{
self::$instance = Excel baru();
}
kembalikan diri::$instance;
}
//Tetapkan alamat file
fungsi publik setFile($namafile)
{
kembalikan $ini->namafile=$namafile;
}
//Buka berkas
fungsi publik Buka()
{
$ini->buku kerja=$ini->excel->Buku Kerja->Buka($ini->nama file);
}
//Set Lembar
fungsi publik setSheet($num=1)
{
jika($angka>0)
{
$ini->sheetnum=$num;
$ini->lembar kerja=$ini->excel->Lembar Kerja[$ini->nomor lembar];
$ini->maxcols=$ini->maxCols();
$ini->maxrows=$ini->maxRows();
$ini->getCells();
}
}
//Dapatkan semua nilai dari tabel dan tuliskan ke dalam array
fungsi pribadi getCells()
{
for($i=1;$i<$ini->maxcols;$i++)
{
for($j=2;$j<$ini->baris maksimal;$j++)
{
$ini->sel[$ini->lembar kerja->Sel(1,$i)->nilai][]=(string)$ini->lembar kerja->Sel($j,$i)->nilai;
}
}
kembalikan $ini->sel;
}
//Mengembalikan susunan isi tabel
fungsi publik getAllData()
{
kembalikan $ini->sel;
}
//Mengembalikan konten sel yang ditentukan
fungsi publik Sel($baris,$col)
{
kembalikan $ini->lembar kerja->Sel($baris,$col)->Nilai;
}
//Mendapatkan array nama field tabel
fungsi publik getFields()
{
for($i=1;$i<$ini->maxcols;$i++)
{
$ini->bidang[]=$ini->lembar kerja->Sel(1,$i)->nilai;
}
kembalikan $ini->bidang;
}
//Memodifikasi konten sel yang ditentukan
fungsi publik editCell($baris,$col,$nilai)
{
if($ini->buku kerja==null || $ini->lembar kerja==null)
{
echo "Kesalahan: Tidak Terhubung!";
}kalau tidak{
$ini->lembar kerja->Sel($baris,$col)->Nilai=$nilai;
$ini->buku kerja->Simpan();
}
}
//Memodifikasi baris data
fungsi publik editOneRow($baris,$arr)
{
if($ini->buku kerja==null || $ini->lembar kerja==null || $baris>=2)
{
echo "Kesalahan: Tidak Terhubung!";
}kalau tidak{
if(count($arr)==$ini->maxcols-1)
{
$i=1;
foreach($arr sebagai $val)
{
$ini->lembar kerja->Sel($baris,$i)->Nilai=$val;
$i++;
}
$ini->buku kerja->Simpan();
}
}
}
//Dapatkan jumlah total kolom
fungsi pribadi maxCols()
{
$i=1;
sementara (benar)
{
if(0==$ini->lembar kerja->Sel(1,$i))
{
kembalikan $i;
merusak;
}
$i++;
}
}
//Dapatkan jumlah total baris
fungsi pribadi maxRows()
{
$i=1;
sementara (benar)
{
if(0==$ini->lembar kerja->Sel($i,1))
{
kembalikan $i;
merusak;
}
$i++;
}
}
//Baca data baris yang ditentukan
fungsi publik getOneRow($baris=2)
{
jika($baris>=2)
{
for($i=1;$i<$ini->maxcols;$i++)
{
$arr[]=$ini->lembar kerja->Sel($baris,$i)->Nilai;
}
kembalikan $arr;
}
}
//Tutup objeknya
fungsi publik Tutup()
{
$ini->excel->Buku Kerja->Tutup();
$ini->excel=null;
$ini->buku kerja=null;
$ini->lembar kerja=null;
diri::$instance=null;
}
};
/*
$excel = COM baru("Excel.Aplikasi");
$buku kerja = $excel->Buku Kerja->Buka('D:\Apache2\htdocs\wwwroot\MyExcel.xls');
$lembar kerja = $excel->Lembar Kerja(1);
echo $lembar kerja->Sel(2,6)->Nilai;
$excel->Buku Kerja->Tutup();
*/
$excel=Unggul::getInstance();
$excel->setFile("D:\Apache2\htdocs\wwwroot\MyExcel.xls");
$excel->Buka();
$excel->setSheet();
untuk($i=1;$i<16;$i++ )
{
$arr[]=$i;
}
//$excel->editOneRow(2,$arr);
print_r($excel->getAllData());
$excel->Tutup();
?>