2011-08-02 5 views
2

PHP를 사용하여 여러 시트, 스타일, 배경색 등으로 XLS 시트를 생성하려고합니다. 지금 모든 데이터가 HTML 테이블에 있습니다. (Sheet1.html, Sheet2.html ...)HTML 코드를 XLS/XLSX로 변환

HTML을 하나의 xls 파일로 변환 할 수있는 라이브러리가 있습니까?

Thx

답변

2

여기는 좋은 PHP 클래스입니다.

http://phpexcel.codeplex.com/

이이 작업을 수행하는 방법에 대한 일반적인 생각이다. 귀하의 HTML 테이블이 2 차원 배열에 있다고 가정합니다. 아직 배열이 아니라면 여기에 좋은 링크가 있습니다 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"; 

첫 번째 색인은 행 (Excel의 행 번호)이고 두 번째 색인은 열 (Excel의 열 문자)입니다. 아래 코드는 사이트의 첫 번째 샘플 코드이며 데이터 부분을 수정하여 2 차원 배열의 데이터를 삽입합니다.

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

이 라이브러리의 메모리 문제 : / – MatRt