لقد كتبت هذا للتو بسبب الملل. إذا كنت تحب الامتدادات، فلا تنس أن ترسل لي نسخة. هاها، شكرًا لك.
ملاحظة: الاختبار ليس فعالاً، haha~~~
[email protected] انسخ PHP المحتوى إلى الحافظة
كود PHP:
<?php
/**
*فئة تشغيل Excel المستندة إلى COM (PHP5.x)
*PHPer:TTR
*التاريخ:[2007-05-24]
*الإصدار: 1.0.0
*المدونة:[url]http://www.Gx3.cn[/url] [url]http://Gx3.cn[/url]
*س:252319874
*/
فئة اكسل
{
ثابت $instance=null;
خاص $excel=null;
مصنف خاص $=null;
خاص $workbookadd=null;
ورقة عمل خاصة $=null;
خاص $worksheetadd=null;
خاص $sheetnum=1;
خاص $cells=array();
خاص $fields=array();
خاص $maxrows؛
خاص $maxcols؛
اسم الملف الخاص $
//Constructor
وظيفة خاصة إكسل ()
{
$this->excel = new COM("Excel.Application") أو die("Did Not Connect");
}
// دخول الفصل
وظيفة ثابتة عامة getInstance ()
{
إذا (فارغة == النفس::$مثيل)
{
self::$instance = new Excel();
}
إرجاع الذات::$instance;
}
//تعيين عنوان الملف
الوظيفة العامة setFile(اسم الملف $)
{
إرجاع $this->filename=$filename;
}
// فتح الملف
الوظيفة العامة مفتوحة ()
{
$this->workbook=$this->excel->WorkBooks->Open($this->filename);
}
//تعيين الورقة
مجموعة الوظائف العامة($num=1)
{
إذا($num>0)
{
$this->sheetnum=$num;
$this->worksheet=$this->excel->أوراق العمل[$this->sheetnum];
$this->maxcols=$this->maxCols();
$this->maxrows=$this->maxRows();
$this->getCells();
}
}
// احصل على جميع القيم من الجدول واكتبها في المصفوفة
وظيفة خاصة getCells ()
{
for($i=1;$i<$this->maxcols;$i++)
{
for($j=2;$j<$this->maxrows;$j++)
{
$this->cells[$this->worksheet->Cells(1,$i)->value][]=(string)$this->worksheet->Cells($j,$i)->value;
}
}
إرجاع $this->cells;
}
// إرجاع مصفوفة محتوى الجدول
الوظيفة العامة getAllData ()
{
إرجاع $this->cells;
}
// إرجاع محتوى الخلية المحدد
خلية الوظيفة العامة($row,$col)
{
إرجاع $this->worksheet->Cells($row,$col)->Value;
}
// احصل على مصفوفة أسماء حقول الجدول
الوظيفة العامة getFields ()
{
for($i=1;$i<$this->maxcols;$i++)
{
$this->fields[]=$this->worksheet->Cells(1,$i)->value;
}
إرجاع $this->fields;
}
// تعديل محتوى الخلية المحددة
الوظيفة العامة EditCell($row,$col,$value)
{
إذا($this->workbook==null || $this->worksheet==null)
{
صدى "خطأ: لم يتم الاتصال!";
}آخر{
$this->ورقة العمل->الخلايا($row,$col)->Value=$value;
$this->المصنف->حفظ();
}
}
// تعديل صف من البيانات
وظيفة عامة تحريرOneRow($row,$arr)
{
إذا($this->workbook==null || $this->worksheet==null || $row>=2)
{
صدى "خطأ: لم يتم الاتصال!";
}آخر{
إذا (العدد($arr)==$this->maxcols-1)
{
$i=1;
foreach($arr كـ $val)
{
$this->ورقة العمل->الخلايا($row,$i)->Value=$val;
$i++;
}
$this->المصنف->حفظ();
}
}
}
// احصل على العدد الإجمالي للأعمدة
وظيفة خاصة maxCols()
{
$i=1;
بينما (صحيح)
{
إذا (0==$this->ورقة العمل->الخلايا(1,$i))
{
إرجاع $i;
استراحة؛
}
$i++;
}
}
// احصل على العدد الإجمالي للصفوف
وظيفة خاصة maxRows ()
{
$i=1;
بينما (صحيح)
{
إذا (0==$this->ورقة العمل->الخلايا($i,1))
{
إرجاع $i;
استراحة؛
}
$i++;
}
}
// اقرأ بيانات الصف المحدد
الوظيفة العامة getOneRow($row=2)
{
إذا($صف>=2)
{
for($i=1;$i<$this->maxcols;$i++)
{
$arr[]=$this->worksheet->Cells($row,$i)->Value;
}
إرجاع $arr;
}
}
// أغلق الكائن
إغلاق الوظيفة العامة ()
{
$this->excel->المصنفات->Close();
$this->excel=null;
$this->workbook=null;
$this->worksheet=null;
self::$instance=null;
}
}
;
$excel = new COM("Excel.Application");
$workbook = $excel->WorkBooks->Open('D:\Apache2\htdocs\wwwroot\MyExcel.xls');
$worksheet = $excel->WorkSheets(1);
echo $worksheet->Cells(2,6)->Value;
$excel->المصنفات->Close();
*/
$excel=Excel::getInstance();
$excel->setFile("D:\Apache2\htdocs\wwwroot\MyExcel.xls");
$excel->فتح();
$excel->setSheet();
ل($i=1;$i<16;$i++ )
{
$arr[]=$i;
}
//$excel->editOneRow(2,$arr);
print_r($excel->getAllData());
$excel->Close()
;