2010-10-26 14 views
5

Estoy tratando de generar un archivo xls con Spreadsheet :: SimpleExcel que llama a una función que está definida en un complemento de terceros (Bloomberg, si es importante). El paquete WriteExcel subyacente no me permite escribir esto porque no sabe acerca de esta función de complemento. Veo la tabla hash gigante de funciones integradas que el módulo conoce y podría potencialmente agregarle esta función, pero no conozco los atributos de la función, especialmente el 'código ptg'.generar hojas de cálculo de Excel en perl que hacen referencia a funciones de complemento de terceros

¿Hay alguna manera de determinar qué código ptg (supongo que es algo así como un código de operación) de esta función de terceros, o hay alguna forma de engañar al módulo para que me permita escribir estas funciones sin él? tener que saber estos detalles? ¿O algún tercer plan que no haya pensado?

Respuesta

2

Spreadsheet::WriteExcelXML y Excel::Writer::XLSX deberían ser capaces de generar archivos de Excel con funciones de terceros.

Ambos módulos usan la misma interfaz que Spreadsheet :: WriteExcel aunque con menos características.

+0

Comprobaré esto. Reconozco que usted es el autor de WriteExcel, así que gracias por la respuesta. – frankc

+0

WriteExcelXML funcionó. Tuve que cambiar SimpleExcel para usar WriteExcelXML, pero solo requirió s/WriteExcel/WriteExcelXML/g y s/addworksheet/add_worksheet/g – frankc

+0

. También podría probar Excel :: Writer :: XLSX si tuviera la oportunidad y hágamelo saber si trabajos. – jmcnamara

2

Creo que necesitas usar Win32 :: OLE y es un poco complicado. Proveedores:

$xls->AddIns->Add($xll_path); 
$xls->RegisterXLL($xll_file); 

donde $ xll_path es la ruta completa a la xll de Bloomberg y $ xll_file es sólo el nombre xll.

Cuestiones relacionadas