将HTML代码转换为XLS/XLSX


Convert HTML code into XLS/XLSX

我正在尝试使用PHP生成具有多个工作表,样式,背景颜色等的XLS表。现在所有的数据都在HTML表中。(Sheet1.html, Sheet2.html…)

是否有任何库将HTML转换成一个xls文件?

Thx

这是一个很好的PHP类。

http://phpexcel.codeplex.com/

这是如何做到这一点的总体思路。我假设你的HTML表格是二维数组。如果它还不是数组,这里有一个很好的链接,可以在PHP中完成从HTML表到数组的转换。

$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";

使用第一个索引作为行(excel的行号),第二个索引作为列(excel的列字母)。下面的代码是来自站点的第一个示例代码,我修改了数据部分,以插入来自二维数组的数据。

<?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";