entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

hola a todos, necesito crear un documento con datos traidos de sql server, el problema es que no tengo ni idea de como lograrlo, estuve leyendo algo de la libreria phpWord pero no le entiendo, alguien me puede mostrar un ejemplo de como se hace un archivo word con php?
de antemano gracias

1 Respuesta

2votos

carlossevi Puntos63580

Aquí tienes un ejemplo de uso de la librería phpWord para crear un documento:

// Include the PHPWord.php, all other classes were loaded by an autoloader
require_once 'PHPWord.php';

// Create a new PHPWord Object
$PHPWord = new PHPWord();

// Every element you want to append to the word document is placed in a section. So you need a section:
$section = $PHPWord->createSection();

// After creating a section, you can append elements:
$section->addText('Hello world!');

// You can directly style your text by giving the addText function an array:
$section->addText('Hello world! I am formatted.', array('name'=>'Tahoma', 'size'=>16, 'bold'=>true));

// If you often need the same style again you can create a user defined style to the word document
// and give the addText function the name of the style:
$PHPWord->addFontStyle('myOwnStyle', array('name'=>'Verdana', 'size'=>14, 'color'=>'1B2232'));
$section->addText('Hello world! I am formatted by a user defined style', 'myOwnStyle');

// You can also putthe appended element to local object an call functions like this:
$myTextElement = $section->addText('Hello World!');
$myTextElement->setBold();
$myTextElement->setName('Verdana');
$myTextElement->setSize(22);

// At least write the document to webspace:
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('helloWorld.docx');

La fuente: Documentación oficial de phpWord.

0voto

rach comentado

hola a todos, gracias por responder @carlossevi estoy usando esta libreria
PHPWord-master

y en localhost funciona muy bien pero en mi server ya no,
dejo mi codigo

<?php

require_once dirname(__FILE__).'/PHPWord-master/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

use PhpOffice\PhpWord\TemplateProcessor;

$templateWord = new TemplateProcessor('plantilla.docx');

$nombre = "Sandra S.L.";
$direccion = "Mi dirección";
$municipio = "Mrd";
$provincia = "Bdj";
$cp = "02541";
$telefono = "24536784";

// --- Asignamos valores a la plantilla
$templateWord->setValue('nombre_empresa',$nombre);
$templateWord->setValue('direccion_empresa',$direccion);
$templateWord->setValue('municipio_empresa',$municipio);
$templateWord->setValue('provincia_empresa',$provincia);
$templateWord->setValue('cp_empresa',$cp);
$templateWord->setValue('telefono_empresa',$telefono);

// --- Guardamos el documento
$templateWord->saveAs('Documento02.docx');

header("Content-Disposition: attachment; filename=Documento02.docx; charset=iso-8859-1");
echo file_get_contents('Documento02.docx');

?>

me sale error 500

0voto

carlossevi comentado

¿Puedes mover esta "respuesta" a "comentario" de la pregunta original o de mi respuesta?

Respecto al nuevo error, el código de HTTP 500 significa "error interno", que el servidor encontró un problema inesperado que le impidió cumplir la solicitud. Seguro que tienes mucha más información en los logs del servidor.

¿Utilizas Apache? Revisa el error.log y nos cuentas cual es el problema.

0voto

rach comentado

ya la movi, ya lo pude solucionar, el problema era mi version de php en el server que es 5.2 y para que esta libreria funcione minimo necesita la 5.3

0voto

Leonardo-Tadei comentado

y un erro r de versiones de PHP te daba un error 500 ???

Es muy raro, porque los errores 500 suelen ser de permisos o de restricciones de ejecución en el servidor.

A qué recurso de PHP 5.3 llamaba que no está en 5.2 ???

0voto

rach comentado

a la librería phpword

0voto

carlossevi comentado

Según la documentación oficial, los requisitos mínimos son:

  • PHP 5.2.x or newer
  • PHP Extension ZipArchive
  • PHP Extension xmllib

0voto

rach comentado

la que yo baje era para superior de 5.3

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta