ฉันเพิ่งเขียนสิ่งนี้มาด้วยความเบื่อหน่าย ถ้าคุณชอบส่วนขยาย อย่าลืมส่งสำเนา 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]
*QQ:252319874
-
คลาส Excel
-
คงที่ $instance=null;
ส่วนตัว $excel=null;
ส่วนตัว $สมุดงาน=null;
ส่วนตัว $workbookadd=null;
ส่วนตัว $แผ่นงาน=null;
ส่วนตัว $worksheetadd=null;
ส่วนตัว $sheetnum=1;
ส่วนตัว $cells=array();
$fields=array(); ส่วนตัว $fields=array();
$maxrows ส่วนตัว;
$maxcols ส่วนตัว;
ชื่อไฟล์ $ ส่วนตัว
// Constructor
ฟังก์ชั่นส่วนตัว Excel()
-
$this->excel = new COM("Excel.Application") or die("ไม่ได้เชื่อมต่อ");
-
//เข้าชั้นเรียน
ฟังก์ชันคงที่สาธารณะ getInstance()
-
ถ้า (null == ตนเอง :: $ อินสแตนซ์)
-
ตนเอง::$instance = Excel ใหม่();
-
กลับตัวเอง::$อินสแตนซ์;
}
//กำหนดที่อยู่ไฟล์
ฟังก์ชั่นสาธารณะ setFile ($ ชื่อไฟล์)
-
กลับ $this->ชื่อไฟล์=$ชื่อไฟล์;
}
//เปิดไฟล์
ฟังก์ชั่นสาธารณะเปิด ()
-
$this->สมุดงาน=$this->excel->WorkBooks->เปิด($this->ชื่อไฟล์);
}
//ตั้งค่าชีต
ฟังก์ชั่นสาธารณะ setSheet($num=1)
-
ถ้า($num>0)
-
$นี่->sheetnum=$num;
$this->แผ่นงาน=$this->excel->แผ่นงาน[$this->sheetnum];
$this->maxcols=$this->maxCols();
$this->maxrows=$this->maxRows();
$นี่->getCells();
-
}
//รับค่าทั้งหมดจากตารางแล้วเขียนลงในอาร์เรย์
ฟังก์ชั่นส่วนตัว getCells()
-
สำหรับ($i=1;$i<$this->maxcols;$i++)
-
สำหรับ($j=2;$j<$this->maxrows;$j++)
-
$this->เซลล์[$this->แผ่นงาน->เซลล์(1,$i)->ค่า][]=(string)$this->แผ่นงาน->เซลล์($j,$i)->มูลค่า;
-
-
กลับ $this->เซลล์;
}
//ส่งคืนอาร์เรย์เนื้อหาตาราง
ฟังก์ชั่นสาธารณะ getAllData()
-
กลับ $this->เซลล์;
}
//ส่งคืนเนื้อหาเซลล์ที่ระบุ
เซลล์ฟังก์ชันสาธารณะ($row,$col)
-
ส่งคืน $this->แผ่นงาน->เซลล์($แถว,$col)->มูลค่า;
}
//รับอาร์เรย์ของชื่อเขตข้อมูลตาราง
ฟังก์ชั่นสาธารณะ getFields()
-
สำหรับ($i=1;$i<$this->maxcols;$i++)
-
$this->fields[]=$this->แผ่นงาน->เซลล์(1,$i)->ค่า;
-
ส่งคืนฟิลด์ $this->;
}
//แก้ไขเนื้อหาของเซลล์ที่ระบุ
ฟังก์ชั่นสาธารณะ editCell($row,$col,$value)
-
if($this->สมุดงาน==null || $this->แผ่นงาน==null)
-
echo "ข้อผิดพลาด: ไม่ได้เชื่อมต่อ!";
}อื่น{
$this->แผ่นงาน->เซลล์($row,$col)->Value=$value;
$นี่->สมุดงาน->บันทึก();
-
}
//แก้ไขแถวข้อมูล
ฟังก์ชั่นสาธารณะ editOneRow($row,$arr)
-
if($this->สมุดงาน==null || $this->แผ่นงาน==null || $row>=2)
-
echo "ข้อผิดพลาด: ไม่ได้เชื่อมต่อ!";
}อื่น{
ถ้า(นับ($arr)==$this->maxcols-1)
-
$i=1;
foreach($arr เป็น $val)
-
$this->แผ่นงาน->เซลล์($row,$i)->Value=$val;
$i++;
-
$นี่->สมุดงาน->บันทึก();
-
-
}
//รับจำนวนคอลัมน์ทั้งหมด
ฟังก์ชั่นส่วนตัว maxCols()
-
$i=1;
ในขณะที่(จริง)
-
if(0==$this->แผ่นงาน->เซลล์(1,$i))
-
ส่งคืน $i;
หยุดพัก;
-
$i++;
-
}
//รับจำนวนแถวทั้งหมด
ฟังก์ชั่นส่วนตัว maxRows()
-
$i=1;
ในขณะที่(จริง)
-
if(0==$this->แผ่นงาน->เซลล์($i,1))
-
ส่งคืน $i;
หยุดพัก;
-
$i++;
-
}
//อ่านข้อมูลแถวที่ระบุ
ฟังก์ชั่นสาธารณะ getOneRow($row=2)
-
ถ้า($แถว>=2)
-
สำหรับ($i=1;$i<$this->maxcols;$i++)
-
$arr[]=$this->แผ่นงาน->เซลล์($row,$i)->มูลค่า;
-
ส่งคืน $arr;
-
}
// ปิดวัตถุ
ฟังก์ชั่นสาธารณะปิด ()
-
$นี่->excel->สมุดงาน->ปิด();
$นี่->excel=null;
$นี่->สมุดงาน=null;
$นี่->แผ่นงาน=null;
ตัวเอง::$instance=null;
-
};
/*
$excel = COM ใหม่("Excel.Application");
$workbook = $excel->WorkBooks->Open('D:\Apache2\htdocs\wwwroot\MyExcel.xls');
$แผ่นงาน = $excel->แผ่นงาน(1);
echo $แผ่นงาน->เซลล์(2,6)->ค่า;
$excel->สมุดงาน->ปิด();
-
$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->ปิด();
?>