abrir y escribir en el archivo xlms con PHP

Desarrollo webapp con PHP5 para leer o actualizar archivos xlsm.

Lo he intentado con PHPEXCEL, pero esta biblioteca no es compatible con el formato de archivos xlsm. Todo lo que necesito es abrir el archivo, escribir los datos allí y almacenarlos como un archivo xlsm. No se debe cambiar la macro.

Es importante que el archivo devuelva el que contiene las macros porque este archivo se usa diariamente para hacer varias importaciones. No puedo cambiar el formato de archivo.

si alguien tiene consejos o cursos de tutores para esta tarea específica, por favor escríbame.

Gracias 4 tu ayuda

preguntado el 12 de junio de 12 a las 15:06

Tu problema es similar a esta. -

2 Respuestas

Si necesita conservar macros de una plantilla de Excel, deberá usar algo como COM porque no hay otras bibliotecas que manejen macros de PHP.

Respondido el 12 de junio de 12 a las 15:06

gracias, intentaré con COM, pero primero instálelo en el servidor. ¿Necesito guardar el archivo xlsm en el servidor? - Janie

La copia de MS Excel en el servidor abrirá el archivo bajo el control de su secuencia de comandos a través de COM, por lo que se debe poder acceder al archivo desde el MS Excel del servidor... así que sí, en el servidor o en un disco accesible desde el servidor - Mark Baker

Hola Mark, ¿sabes cómo acelerar la carga de un archivo xls con PHPExcel? Janie

@Janie: si tuviera una respuesta agradable y simple para acelerar la lectura de archivos en PHPExcel, puede estar seguro de que ya estaría implementada: Mark Baker

ok, mi aplicación es demasiado lenta porque abro el archivo xls $openFile= new PHPExcel_Reader_Excel5(); $excel = $abrirArchivo->load('Formular.xls'); - Janie

Los archivos xslm son en realidad archivos ZIP con documentos XML y otros activos dentro de ellos. PHPEXCEL y otros lectores y escritores de formato de archivo de MS Office similares solo leen los formatos de blob binario más antiguos, no los más nuevos. Formatos XML abiertos de Office.

Intenta usar Archivo zip para abrir el archivo en PHP y una de las bibliotecas PHP XML para leer el xml dentro del archivo. Mientras no modifique las macros, las macros se conservarán.

Sin embargo, si realmente necesita ejecutar las macros, necesita un tiempo de ejecución completo de Office. En este caso, debe usar COM en Windows con una copia de Office para ejecutar el archivo.

Respondido el 12 de junio de 12 a las 15:06

PHPExcel lee ambos archivos BIFF (BIFF5 a BIFF8) .xls and Archivos Office Open XML .xlsx. Simplemente no hace las macros en xlsm - Mark Baker

gracias, intentaré con COM, pero primero instálelo en el servidor. ¿Necesito guardar el archivo xlsm en el servidor? - Janie

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.