Convert HTML code into XLS/XLSX
I am trying to generate a XLS sheet with multiple sheets, styles, background co开发者_如何学编程lors and so on using PHP. Right now all data lie in HTML tables. (Sheet1.html, Sheet2.html ...)
Is there any library to convert HTML into one xls file?
Thx
Here is a good PHP Class.
http://phpexcel.codeplex.com/
This is a general idea on how to do this. I'm assuming your HTML tables are in a 2-dimensional array. If it's not yet an array, here's a good link to do this conversion from HTML table to array in PHP.
$tabledata = array();
$tabledata[0][0] = "value stored in A1";
$tabledata[0][2] = "value stored in B1";
$tabledata[1][0] = "value stored in A2";
$tabledata[1][3] = "value stored in B2";
With the first index as the row (excel's row numbers) and the second index as the column (excel's column letters). The code below is the first sample code from the site and I modified the data part to insert data from a 2-dimensional array.
<?php
/** Error reporting */
error_reporting(E_ALL);
/** Include path **/
ini_set('include_path', ini_get('include_path').';../Classes/');
/** PHPExcel */
include 'PHPExcel.php';
/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';
// Create new PHPExcel object
echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();
// Set properties
echo date('H:i:s') . " Set properties\n";
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
// Add some data
echo date('H:i:s') . " Add some data\n";
$objPHPExcel->setActiveSheetIndex(0);
foreach ($html as $row_index => $row_value) {
foreach ($row_value as $column_index => $cell_value) {
$objPHPExcel->getActiveSheet()->SetCellValue("'".chr($column_index+65).($row_index+1)."'", $cell_value);
}
}
// $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
// $objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
// $objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
// $objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');
// Rename sheet
echo date('H:i:s') . " Rename sheet\n";
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Save Excel 2007 file
echo date('H:i:s') . " Write to Excel2007 format\n";
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
// Echo done
echo date('H:i:s') . " Done writing file.\r\n";
精彩评论