|
|
@@ -9,6 +9,20 @@
|
|
|
// | Author: 流年 <liu21st@gmail.com>
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
|
+use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
|
|
|
+use PhpOffice\PhpSpreadsheet\Reader\Xls;
|
|
|
+use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
|
+use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
|
|
|
+use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
|
|
|
+use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\Fill;
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\Color;
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\Border;
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
|
|
+
|
|
|
+
|
|
|
// 应用公共文件
|
|
|
/**
|
|
|
* 删除目录以及其下的文件
|
|
|
@@ -105,60 +119,3 @@ function perDisplay($dit, $xiaos = 2)
|
|
|
return floatPointDigit(floor(100 * $dit), $xiaos) . '%';
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * 导出excel表格
|
|
|
- *
|
|
|
- * @param array $columName 第一行的列名称
|
|
|
- * @param array $list 二维数组
|
|
|
- * @param string $setTitle sheet名称
|
|
|
- * @return
|
|
|
- * @author Tggui <tggui@vip.qq.com>
|
|
|
- */
|
|
|
-function exportExcel($columName, $list, $setTitle = 'Sheet1', $fileName = 'demo')
|
|
|
-{
|
|
|
- if (empty($columName) || empty($list)) {
|
|
|
- return '列名或者内容不能为空';
|
|
|
- }
|
|
|
-
|
|
|
- if (count($list[0]) != count($columName)) {
|
|
|
- return '列名跟数据的列不一致';
|
|
|
- }
|
|
|
-
|
|
|
- //实例化PHPExcel类
|
|
|
- $PHPExcel = new PHPExcel();
|
|
|
- //获得当前sheet对象
|
|
|
- $PHPSheet = $PHPExcel->getActiveSheet();
|
|
|
- //定义sheet名称
|
|
|
- $PHPSheet->setTitle($setTitle);
|
|
|
-
|
|
|
- //excel的列 这么多够用了吧?不够自个加 AA AB AC ……
|
|
|
- $letter = [
|
|
|
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
|
|
- 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
|
|
|
- ];
|
|
|
- //把列名写入第1行 A1 B1 C1 ...
|
|
|
- for ($i = 0; $i < count($list[0]); $i++) {
|
|
|
- $PHPSheet->setCellValue("$letter[$i]1", "$columName[$i]");
|
|
|
- }
|
|
|
- //内容第2行开始
|
|
|
- foreach ($list as $key => $val) {
|
|
|
- foreach (array_values($val) as $key2 => $val2) {
|
|
|
- $PHPSheet->setCellValue($letter[$key2] . ($key + 2), $val2);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //生成2007版本的xlsx
|
|
|
- $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');
|
|
|
- header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
|
- header('Content-Disposition: attachment;filename=' . $fileName . '.xlsx');
|
|
|
- header('Cache-Control: max-age=0');
|
|
|
- $PHPWriter->save("php://output");
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * 使用方法
|
|
|
-$titlname = ['订单号','消费用户','订单金额','订单数量','支付状态','订单时间'];
|
|
|
-exportExcel($titlname,'你的二维数组数据','Sheet1','文件名称');
|
|
|
-*/
|
|
|
-
|