SELECT * FROM Vzakladke.net

Статьи об автоматизации и программировании

Простой PHP генератор файлов в формате MS Excel

 

 

В этой статье мы разберем пример генерации простейшего Excel файла при помощи PHP, используя небольшой класс "XLS". 

Использовать его на самом деле несложно, достаточно выполнить четыре простых действия... Сначала подключаем скрипт с самим классом: include 'xls.php'; 

Создаем документ, вызывая класс генератора: $xls = new XLS(); 

Добавляем в указанные ячейки значения:
$xls->add_cell(0,0,"name");  // первая ячейка в первом столбце
$xls->add_cell(1,0,"email");  // второй столбец, первая строка

где первый параметр - это столбец,
      второй - строка,
      третий - значение, в которое записываем в ячейку.

Сохраняем наш сгенерированный файл: $xls->save_file('somefile.xls');

 

Сам скрипт будет выглядеть так:

	#Microsoft Excel 5 Header and End Of File Binary Representation
	define("XLSFile_Header",	pack("s*",2057,8,0,0,0,0));
	define("XLSFile_End",		pack("s*",10,0));

	#Following function return code for an Excel Worksheet Cell
	function get_xlscell_code($x,$y,$cell_txt) {
		$ret = pack("s*",516,strlen($cell_txt)+8,$y,$x,0,strlen($cell_txt));
		$ret .= $cell_txt;
		return $ret;
	}
	
	class XLS {
		var $_final_bytes  = "";
		var $_file_name = 'text.xls';
		
		function XLS() { }
		
		function add_cell($COLUMN,$ROW,$cell_text) {
			$this->_final_bytes .= get_xlscell_code($COLUMN,$ROW,$cell_text);
		}
		function xls_bytes() {
			return XLSFile_Header.$this->_final_bytes.XLSFile_End;
		}
		function save_file($fname='',$_overwrite=true) {
			$fname = $fname==''  ? $this->_file_name : $fname;
			$f = @fopen($fname,"r");
			if($f and !$_overwrite) {
				@fclose($f);
				return false;
			}
			@fclose($f);
			$f = @fopen($fname,"w");
			if(!$f) return false;
			$bytes = $this->xls_bytes();
			if(!@fwrite($f,$bytes)) return false;
			@fclose($f);
			
			return true;
		}
	}

 

Дата публикации: 2015-10-11 21:32:16

PHP

0

Отзывы:

Ваше имя:

Ваш e-mail (необязательно):

Сообщение:

Captcha