2016-08-22 63 views
0

我创建从HTML表这样的XLSX文件:phpexcel样式和格式与createReader(“HTML”)

$tmpfile = tempnam(sys_get_temp_dir(), 'html'); 
file_put_contents($tmpfile, utf8_decode($tablahtml2paraexcel)); 

$excelHTMLReader = \PHPExcel_IOFactory::createReader('HTML'); 
$excelHTMLReader->loadIntoExisting($tmpfile, $phpExcelObjectTemp2); 

$objWorkSheetBase = $phpExcelObjectTemp2->getSheet(); 
$objWorkSheetBase->setTitle('Empresas Mayor Contratacion'); 

$phpExcelObject->addSheet($objWorkSheetBase); 

但我需要添加的风格和格式化对XLSX创建的细胞,如粗体,居中,垂直对齐,等我知道如何当你构建整个XLSX(2007)通过细胞的细胞做:

$styleBold = array('font' => array('bold' => true)); 
$phpExcelObject->getActiveSheet()->getStyle('B2')->applyFromArray($styleBold); 

,但不知道如何从一个HTML表格做。

回答

0

您的工作方式与按单元格构建整个xlsx(2007)单元格的方式完全相同......这些样式方法适用于任何PHPExcel对象,并且无论该对象是否通过加载一个xlsx文件,一个csv文件,一个html文件,或者使用new创建一个新的PHPExcel对象。一旦PHPExcel对象被创建,那么它只是一个PHPExcel对象,所有方法都可用于PHPExcel对象。

+0

我无法得到它。我试图像这样:$ styleArray = array('font'=> array('bold'=> true)); $ tmpfile = tempnam(sys_get_temp_dir(),'html'); file_put_contents($ tmpfile,utf8_decode($ tablahtml1paraexcel)); $ excelHTMLReader = \ PHPExcel_IOFactory :: createReader('HTML'); $ excelHTMLReader-> loadIntoExisting($ tmpfile,$ phpExcelObjectTemp1); $ objWorkSheetBase = $ phpExcelObjectTemp1-> getSheet(); $ objWorkSheetBase-> setTitle('Contratacion Energia tiempo'); $ phpExcelObject-> getActiveSheet() - > getStyle('B2') - > applyFromArray($ styleArray); $ phpExcelObject-> addSheet($ objWorkSheetBase);取消链接($ TMPFILE); – pmirnd

+0

那么没有理由为什么它不应该工作,虽然你不显示如何创建'$ phpExcelObjectTemp1'(为什么不简单地使用'load()'或者你是否添加到现有的文件?并且你不会显示'save()',但没有明显的理由说明为什么它不能正常工作......实际发生了什么?加载/保存是否正常工作,并且它不能应用样式?还是它在加载或保存时失败 –

+0

这是我正在使用的代码:http://ideone.com/i6p59D(它只是主代码,而不是整个php文件,我使用的是Symfony2,但是那没关系) – pmirnd