使用PHP脚本 将数据库查询的数据导入生成Excel文件

操作:

 1.下载PhpSpreadsheet类库        下载地址:github 官方 PhpSpreadsheet

 或者使用composer 命令 下载

composer require phpoffice/phpspreadsheet

2.编写PHP代码

<?php
	# 载入composer自动加载文件
	require 'PhpSpreadSheet/vendor/autoload.php';
	# 给类文件的命名空间起个别名
	use PhpOffice\PhpSpreadsheet\Spreadsheet;
	# Xlsx类 将电子表格保存到文件
	use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
	$serve = 'localhost:3306';
	$username = 'root';
	$password = '123456';
	$dbname = 'table';
	$mysqli = new Mysqli($serve, $username, $password, $dbname);
	if($mysqli->connect_error){
		die('connect error:' . $mysqli->connect_errno);
	}
	$mysqli->set_charset('UTF-8'); // 设置数据库字符集

	$result = $mysqli->query('select * from users');
	$data = $result->fetch_all(); // 从结果集中获取所有数据,得到一个二维数组
	//print_r($data);
	dataToExcel($data);
	
	function dataToExcel($data){
		
	    # 实例化 Spreadsheet 对象
	    $spreadsheet = new Spreadsheet();
	    # 获取活动工作薄
	    $sheet = $spreadsheet->getActiveSheet();
	    $sheet->getColumnDimension('C')->setWidth(30); // 设置某一列的宽度
	    # 获取单元格 并为其赋值
	    $sheet -> getCell('A1')->setValue("id");       // 设置每列代表的属性
		$sheet -> getCell('B1')->setValue("用户名");
		$sheet -> getCell('C1')->setValue("密码");
		$sheet -> getCell('D1')->setValue("角色");
	   
	    foreach ($data as $key => $v) {
	    	# code...
	    	$key += 2;                                      // 从第二行开始
	    	$sheet->getCell('A'. $key)->setValue($v[0]);  // 循环为其赋值
	    	$sheet->getCell('B'. $key)->setValue($v[1]);
	    	$sheet->getStyle('B'. $key)->getFont()->getColor()->setARGB('FFFF0000'); // 设置样式
	    	$sheet->getCell('C'. $key)->setValue($v[2]);
	    	$sheet->getCell('D'. $key)->setValue($v[3]);
	    	
	    }

	    $writer = new Xlsx($spreadsheet);
	    $writer->save('users'.time().".xlsx");                // 生成Excel表
	}
	echo "生成Excel表完成";
?>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值