diff --git a/htdocs/document.php b/htdocs/document.php index ca5fe498382..b8091b8ef0c 100644 --- a/htdocs/document.php +++ b/htdocs/document.php @@ -43,6 +43,7 @@ $type = urldecode($_GET["type"]); $attachment = true; if (eregi('\.html',$original_file)) { $type='text/html'; $attachment = false; } if (eregi('\.csv',$original_file)) { $type='text/csv'; $attachment = true; } if (eregi('\.pdf',$original_file)) { $type='application/pdf'; $attachment = true; } +if (eregi('\.xls',$original_file)) { $type='application/x-msexcel'; $attachment = true; } //Suppression de la chaine de caractère ../ dans $original_file $original_file = str_replace("../","/", "$original_file"); diff --git a/htdocs/includes/modules/export/export_excel.modules.php b/htdocs/includes/modules/export/export_excel.modules.php new file mode 100644 index 00000000000..aa3502d140f --- /dev/null +++ b/htdocs/includes/modules/export/export_excel.modules.php @@ -0,0 +1,159 @@ + +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* or see http://www.gnu.org/ +* +* $Id$ +* $Source$ +*/ + +/** + \file htdocs/includes/modules/export/export_excel.modules.php + \ingroup export + \brief Fichier de la classe permettant de générer les export au format CSV + \author Laurent Destailleur + \version $Revision$ +*/ + +require_once(DOL_DOCUMENT_ROOT."/includes/modules/export/modules_export.php"); +require_once(PHP_WRITEEXCEL_PATH."class.writeexcel_workbookbig.inc.php"); +require_once(PHP_WRITEEXCEL_PATH."class.writeexcel_worksheet.inc.php"); + + +/** + \class ExportCsv + \brief Classe permettant de générer les factures au modèle Crabe +*/ + +class ExportExcel extends ModeleExports +{ + var $id; + var $label; + var $extension; + var $version; + + var $label_lib; + var $version_lib; + + var $workbook; // Handle fichier + var $worksheet; // Handle onglet + + + /** + \brief Constructeur + \param db Handler accès base de donnée + */ + function ExportExcel($db) + { + global $conf,$langs; + $this->db = $db; + + $this->id='excel'; // Same value then xxx in file name export_xxx.modules.php + $this->label='Excel'; // Label of driver + $this->extension='xls'; // Extension for generated file by this driver + $ver=split(' ','$Revision$'); + $this->version=$ver[2]; // Driver version + + // If driver use an external library, put its name here + $this->label_lib='Php_WriteExcel'; + $this->version_lib='?'; + } + + function getDriverId() + { + return $this->id; + } + + function getDriverLabel() + { + return $this->label; + } + + function getDriverExtension() + { + return $this->extension; + } + + function getDriverVersion() + { + return $this->version; + } + + function getLibLabel() + { + return $this->label_lib; + } + + function getLibVersion() + { + return $this->version_lib; + } + + + function open_file($file) + { + dolibarr_syslog("ExportExcel::open_file file=$file"); + $this->workbook = &new writeexcel_workbookbig($file); + $this->worksheet = &$this->workbook->addworksheet(); + + // $this->worksheet->set_column(0, 50, 18); + + return 0; + } + + + function write_header($langs) + { + return 0; + } + + + function write_title($array_export_fields_label,$array_selected_sorted,$langs) + { + return 0; + } + + + function write_record($array_alias,$array_selected_sorted,$objp) + { + $this->col=0; + $this->row++; + foreach($array_selected_sorted as $code => $value) + { + $alias=$array_alias[$code]; + //print "dd".$alias; + $this->worksheet->write($this->row, $this->col, $objp->$alias); + $this->col++; + } + return 0; + } + + + function write_footer($langs) + { + return 0; + } + + + function close_file() + { + $this->workbook->close(); + return 0; + } + +} + +?>