当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP中创建和编辑Excel表格的方法

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-19 13:08:32 浏览: 评论:0 

要使用纯PHP创建或编辑Excel电子表格,我们将使用PHPExcel库,它可以读写许多电子表格格式,包括xls,xlsx,ods和csv。在我们继续之前,仔细检查您的服务器上是否有PHP 5.2或更高版本以及安装了以下PHP扩展:php_zip,php_xml和php_gd2。

创建电子表格:

创建电子表格是PHP应用程序中最常见的用例之一,用于将数据导出到Excel电子表格。查看以下代码,了解如何使用PHPExcel创建示例Excel电子表格:

  1. // Include PHPExcel library and create its object 
  2. require('PHPExcel.php'); 
  3.   
  4. $phpExcel = new PHPExcel; 
  5.   
  6. // Set default font to Arial 
  7. $phpExcel->getDefaultStyle()->getFont()->setName('Arial'); 
  8.   
  9. // Set default font size to 12 
  10. $phpExcel->getDefaultStyle()->getFont()->setSize(12); 
  11.   
  12. // Set spreadsheet properties – title, creator and description 
  13. $phpExcel ->getProperties()->setTitle("Product list"); 
  14. $phpExcel ->getProperties()->setCreator("Voja Janjic"); 
  15. $phpExcel ->getProperties()->setDescription("PHP Excel spreadsheet testing."); 
  16.   
  17. // Create the PHPExcel spreadsheet writer object 
  18. // We will create xlsx file (Excel 2007 and above) 
  19. $writer = PHPExcel_IOFactory::createWriter($phpExcel"Excel2007"); 
  20.   
  21. // When creating the writer object, the first sheet is also created 
  22. // We will get the already created sheet 
  23. $sheet = $phpExcel ->getActiveSheet(); 
  24.   
  25. // Set sheet title 
  26. $sheet->setTitle('My product list'); 
  27.   
  28. // Create spreadsheet header 
  29. $sheet ->getCell('A1')->setValue('Product'); 
  30. $sheet ->getCell('B1')->setValue('Quanity'); 
  31. $sheet ->getCell('C1')->setValue('Price'); 
  32.   
  33. // Make the header text bold and larger 
  34. $sheet->getStyle('A1:D1')->getFont()->setBold(true)->setSize(14); 
  35.   
  36. // Insert product data 
  37.   
  38. //phpfensi.com 
  39. // Autosize the columns 
  40. $sheet->getColumnDimension('A')->setAutoSize(true); 
  41. $sheet->getColumnDimension('B')->setAutoSize(true); 
  42. $sheet->getColumnDimension('C')->setAutoSize(true); 
  43.   
  44. // Save the spreadsheet 
  45. $writer->save('products.xlsx'); 

如果要下载电子表格而不是将其保存到服务器,请执行以下操作:

  1. header('Content-Type: application/vnd.ms-excel'); 
  2. header('Content-Disposition: attachment;filename="file.xlsx"'); 
  3. header('Cache-Control: max-age=0'); 
  4. $writer->save('php://output'); 

编辑现有电子表格:

在PHP中编辑电子表格与创建电子表格类似:

  1. // Include PHPExcel library and create its object 
  2. require('PHPExcel.php'); 
  3.   
  4. // Load an existing spreadsheet 
  5. $phpExcel = PHPExcel_IOFactory::load('products.xlsx'); 
  6.   
  7. // Get the first sheet 
  8. $sheet = $phpExcel ->getActiveSheet(); 
  9.   
  10. // Remove 2 rows starting from the row 2 
  11. $sheet ->removeRow(2,2); 
  12.   
  13. // Insert one new row before row 2 
  14. $sheet->insertNewRowBefore(2, 1); 
  15.   
  16. // Create the PHPExcel spreadsheet writer object 
  17. // We will create xlsx file (Excel 2007 and above) 
  18. $writer = PHPExcel_IOFactory::createWriter($phpExcel"Excel2007"); 
  19.   
  20. // Save the spreadsheet 
  21. $writer->save('products.xlsx'); 

准备电子表格进行打印

要准备电子表格进行打印,我们将设置纸张方向,尺寸和边距:

  1. $sheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); 
  2. $sheet -> getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);  
  3. $sheet->getPageMargins()->setTop(1); 
  4. $sheet ->getPageMargins()->setRight(0.75); 
  5. $sheet ->getPageMargins()->setLeft(0.75); 
  6. $sheet ->getPageMargins()->setBottom(1); 

将PHPExcel与Laravel一起使用:

PHPExcel库也可以在Laravel框架中使用。查看以下PHP包(此处)并通过Composer安装它。完成安装步骤后,您可以使用以下代码将数据从数据库导出到Excel电子表格中:

  1. Excel::create('Products'function($excel) { 
  2.   
  3.         // Set the title 
  4.         $excel->setTitle('Product list'); 
  5.     
  6.         // Set the creator 
  7.         $excel->setCreator('Voja Janjic'); 
  8.     
  9.         // Set description 
  10.         $excel->setDescription('PHP Excel spreadsheet testing'); 
  11.     
  12.         $excel->sheet('Products'function($sheet) { 
  13.      
  14.                 // Get data from the database 
  15.                 $products = Product::all();  
  16.     
  17.                 // Generate header row 
  18.                 $sheet->row(1, array
  19.                         'ID'
  20.                         'Product'
  21.                         'Price'
  22.                         'Quantity',      
  23.                 )); 
  24.     
  25.                 // Generate data rows  
  26.                 $i = 2;  
  27.                 foreach($products as $product) {     
  28.                         $sheet->row($iarray
  29.                                    $product->product_id, 
  30.                                    $product->product_name, 
  31.                                    $product->price, 
  32.                                    $variety->quantity,     
  33.                         )); 
  34.      
  35.                         $i++; 
  36.                 } 
  37.   
  38.         }); 
  39.   
  40. })->export('xlsx'); 

Tags: PHP创建Excel 编辑Excel

分享到: