Ну и вот пример работы с простенькими .xls (без формул)
Код | class XLSTable {
var $cells; var $rows,$cols; var $character_array; function XLSTable($rows,$cols) { $this->cells=array(); for($i=0;$i<$rows;$i++){ $this->cells[$i]=array(); for($y=0;$y<$cols;$y++) $this->cells[$i][$y]=''; } $this->cols=$cols; $this->rows=$rows; $str1=explode(",","A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"); for($i=0;$i<count($str1);$i++) { $this->character_array[$str1[$i]]=$i; } } function setCell($row, $col, &$value) { $this->cells[$row-1][$col-1]=$value; //row-1, потому что excel считает с 1 } function setExcelCell($row, $col, &$value) { if(isset($this->character_array[$col])) { $x=$this->character_array[$col]; }else{throw "Only Aa-Zz allowed";} $this->cells[$row-1][$x]=$value; //row-1, потому что excel считает с 1 } function toXLS() { $s=""; for( $i=0;$i<$this->rows;$i++) { for($n=0;$n<$this->cols;$n++) { $s.=$this->cells[$i][$n]; if($n<$this->cols-1) $s.="\t"; //Между ячейками табулятор } $s.="\n";//между строками переход } return $s; } }; header("Content-Type: application/msexcel;"); header("Content-Disposition: attachment; filename=text.xls"); $table=new XLSTable(10,20); $str=("cell x="); //str+x+"y="+y //заполняем чем попало for($y=1;$y<=10;$y++) for($x=1;$x<=20;$x++) $table->setCell($y,$x,$str="sdgsdgf"); //или конкретно ячейку $table->setCell(2,3,$str="checkit");//сажаем ячейку 2,3 // ну и бонусная функция (раз уж я сел за компилер :)) $str="checkitD"; $table->setExcelCell(3,'D',$str);//сажаем ячейку 3,D //выписываем в файл
print $table->toXLS();
|
|