php:用phpexcel生成excel格式文件

 一,phpexcel官方代码站:

https://github.com/PHPOffice/PHPExcel

说明:项目在2019年已经被设置为archived
新用户可以使用它的代替项目PhpSpreadsheet来实现
我是因为旧代码中使用了这个库才应用它来工作

二,演示代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
//得到$arr_final,其中包含了我们需要转存到excel中的数据,
//此部分代码不再展示
 
//输出成excel格式
include '/data/web/webliangcang/lib/lib_phpexcel/phpexcel/Classes/PHPExcel.php';
include '/data/web/webliangcang/lib/lib_phpexcel/phpexcel/Classes/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);
//写excel的表头,注意是第一行
$objPHPExcel->getActiveSheet()->SetCellValue('A1', '促销id');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', '开始时间');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', '结束时间');
$objPHPExcel->getActiveSheet()->SetCellValue('D1', '促销活动名称');
$objPHPExcel->getActiveSheet()->SetCellValue('E1', '商品id');
$objPHPExcel->getActiveSheet()->SetCellValue('F1', '商品名称');
$objPHPExcel->getActiveSheet()->SetCellValue('G1', 'sku');
$objPHPExcel->getActiveSheet()->SetCellValue('H1', '原价');
$objPHPExcel->getActiveSheet()->SetCellValue('I1', '促销价');
$objPHPExcel->getActiveSheet()->SetCellValue('J1', '折扣比率');
$objPHPExcel->getActiveSheet()->SetCellValue('K1', '结算价');
//写excel的数据,注意是从第二行开始写入
foreach($arr_final as $k => $row) {
    $index = $k+2;
 
    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$index, $row['promotion_id']);
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$index, $row['start_time']);
    $objPHPExcel->getActiveSheet()->SetCellValue('C'.$index, $row['end_time']);
    $objPHPExcel->getActiveSheet()->SetCellValue('D'.$index, $row['name']);
    $objPHPExcel->getActiveSheet()->SetCellValue('E'.$index, $row['goods_id']);
    $objPHPExcel->getActiveSheet()->SetCellValue('F'.$index, $row['goods_name']);
    $objPHPExcel->getActiveSheet()->SetCellValue('G'.$index, $row['sku']);
    $objPHPExcel->getActiveSheet()->SetCellValue('H'.$index, $row['price']);
    $objPHPExcel->getActiveSheet()->SetCellValue('I'.$index, $row['discount_price']);
    $objPHPExcel->getActiveSheet()->SetCellValue('J'.$index, $row['rate']);
    $objPHPExcel->getActiveSheet()->SetCellValue('K'.$index, $row['promotion_settlement_price']);
}
 
// 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";

三,查看效果:

posted @ 2023-10-30 07:51  刘宏缔的架构森林  阅读(105)  评论(0编辑  收藏  举报