PhpSpreadsheet_php file_put_contents

PhpSpreadsheet_php file_put_contentsSpreadsheet支持excel函数公式使用<?php namespaceapp #给类文件的命名空间起个别名 usePhpOffice\PhpSpreadsheet\Spreadsheet; #Xlsx类将电子表格保存到文件 usePhpOffice\PhpSpreadsheet\Writer\Xlsx; #实例化Spreadsheet对象 $spreadsheet=newSpreadsheet(); #获取活动工作薄 $sheet=$

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Spreadsheet 支持excel 函数 公式使用

<?php
	namespace app
	# 给类文件的命名空间起个别名
	use PhpOffice\PhpSpreadsheet\Spreadsheet;
	# Xlsx类 将电子表格保存到文件
	use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
	# 实例化 Spreadsheet 对象
	$spreadsheet = new Spreadsheet();
	# 获取活动工作薄
	$sheet = $spreadsheet->getActiveSheet();

	$sheet->setCellValue('A1','10');
	$sheet->setCellValue('B1','15');
	$sheet->setCellValue('C1','20');
	$sheet->setCellValue('D1','25');
	$sheet->setCellValue('E1','30');
	$sheet->setCellValue('G1','35');
	$sheet->setCellValue('A2', '总数:');
	$sheet->setCellValue('B2', '=SUM(A1:G1)');
	$sheet->setCellValue('A3', '平均数:');
	$sheet->setCellValue('B3', '=AVERAGE(A1:G1)');
	$sheet->setCellValue('A4', '最小数:');
	$sheet->setCellValue('B4', '=MIN(A1:G1)');
	$sheet->setCellValue('A5', '最大数:');
	$sheet->setCellValue('B5', '=MAX(A1:G1)');
	$sheet->setCellValue('A6', '最大数:');
	$sheet->setCellValue('B6', '\=MAX(A1:G1)');	// 使用转义字符
	// 批量赋值
	$sheet->setCellValue('A1','ID');
    $sheet->setCellValue('B1','姓名');
    $sheet->setCellValue('C1','年龄');
    $sheet->setCellValue('D1','身高');
    $sheet->fromArray(
        [
            [1,'欧阳克','18岁','188cm'],
            [2,'黄蓉','17岁','165cm'],
            [3,'郭靖','21岁','180cm']
        ],
        3,
        'A2'
    );
	// 合并单元格 合并后,赋值只能给A1,开始的坐标。
	$sheet->mergeCells('A1:B5');
    $sheet->getCell('A1')->setValue('欧阳克');
    
	# Xlsx类 将电子表格保存到文件
	$writer = new Xlsx($spreadsheet);
	$writer->save('1.xlsx');
	
   // 客户端文件下载
	header('Content-Type:application/vnd.ms-excel');
    header('Content-Disposition:attachment;filename=1.xls');
    header('Cache-Control:max-age=0');
    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
    $writer->save('php://output');

读取表格文件

<?php
	namespace app;
	# 创建读操作
	$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
	# 打开文件、载入excel表格
	$spreadsheet = $reader->load('1.xlsx');
	# 获取活动工作薄
	$sheet = $spreadsheet->getActiveSheet();

	# 获取 单元格值 和 坐标
	$cellC1 = $sheet->getCell('B2');
	echo '值: ', $cellC1->getValue(),PHP_EOL;
	echo '坐标: ', $cellC1->getCoordinate(),PHP_EOL;

	$sheet->setCellValue('B2','欧阳锋');

	# 获取 单元格值 和 坐标
	$cellC2 = $sheet->getCell('B2');
	echo '值: ', $cellC2->getValue(),PHP_EOL;
	echo '坐标: ', $cellC2->getCoordinate();

导入功能

<?php
	$file = $_FILES['file']['tmp_name'];
	# 载入composer自动加载文件
	require 'vendor/autoload.php';
	# 载入方法库
	require 'function.php';

	# 创建读操作
	$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
	# 打开文件、载入excel表格
	$spreadsheet = $reader->load($file);
	# 获取活动工作薄
	$sheet = $spreadsheet->getActiveSheet();

	# 获取总列数
	$highestColumn = $sheet->getHighestColumn();
	# 获取总行数
	$highestRow = $sheet->getHighestRow();

	# 列数 改为数字显示
	$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn);
	$log = [];
	for($a=2;$a<$highestRow;$a++){ 
   
		$title = $sheet->getCellByColumnAndRow(1,$a)->getValue();
		$cat_fname = $sheet->getCellByColumnAndRow(2,$a)->getValue();
		$cat_name = $sheet->getCellByColumnAndRow(3,$a)->getValue();
		$price = $sheet->getCellByColumnAndRow(4,$a)->getValue();
		$img = $sheet->getCellByColumnAndRow(5,$a)->getValue();

		$cat_fid = find('shop_cat','id','name="'.$cat_fname.'"');
		$cat_id = find('shop_cat','id','name="'.$cat_name.'"');
		$data = [
			'title' => $title,
			'cat_fid' => $cat_fid['id'],
			'cat_id' => $cat_id['id'],
			'price' => $price,
			'img' => $img,
			'add_time' => time(),
		];
		$ins = insert('shop_list',$data);
		if($ins){ 
   
			$log[] = '第'.$a.'条,插入成功';
		}else{ 
   
			$log[] = '第'.$a.'条,插入失败';
		}
	}
	echo json_encode(['code'=>0,'msg'=>'成功','data'=>$log]);



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192558.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • File中createNewFile()和createTempFile()区别[通俗易懂]

    1、createTempFile():FilesampleDir=newFile(Environment.getExternalStorageDirectory().getAbsolutePath()+”/FMRecording”);mSampleFile=File.createTempFile(“FMRecording”,”.m4a”,sampleDir);主要的

    2022年4月11日
    263
  • 常用的web漏洞扫描工具_十大常用管理工具

    常用的web漏洞扫描工具_十大常用管理工具Webscantool推荐10大Web漏洞扫描程序Nikto这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI,以及超过900个服务器版本,还有250多个服务器上的版本特定问题)进行全面的测试。其扫描项目和插件经常更新并且可以自动更新(如果需要的话)。Nikto可以在尽可能短的周期内测试你的Web服务器,这在其日志文件中…

    2022年9月12日
    5
  • 宽字节注入讲解

    宽字节注入讲解我讨厌现在的自己,一边压抑着自己的情绪,一边装作没事的样子,一到深夜就彻底崩溃了,天亮后还要微笑面对生活。。。—-网易云热评一、原理1、单字节字符集:所有的字符都使用一个字节来表示,比如ASCII编码(0-127)2、多字节字符集:在多字节字符集中,一部分字节用多个字节来表示,另一部分(可能没有)用单个字节来表示。3、宽字节注入是利用mysql的一个特性,使用GBK编码的时候,会认为两个字符是一个汉字二、addslashes()函数1、addslashes(..

    2022年10月14日
    2
  • 关于UNPIVOT 操作符

    关于UNPIVOT 操作符

    2021年11月25日
    40
  • iOS—-SIGPIPE信号终止进程[通俗易懂]

    iOS—-SIGPIPE信号终止进程[通俗易懂]#概念:SIGPIPE,当一个程序a调用send函数向一个服务A发送信号的数据,服务A在接收数据的时候突然挂掉、无法接收数据、没有接收者,那么内核就会发送一个SIGPIPE信号,从而中断进程,导致程序退出。#调用signal(SIGPIPE,SIG_IGN);对一个已经收到FIN包的socket调用read方法,如果接收缓冲已空,则返回0,这就是常说的表示连接关闭.但第一次对其调用…

    2022年7月17日
    12
  • Python 生成随机数_python 随机字符串

    Python 生成随机数_python 随机字符串python中生成随机数主要使用random模块和numpy库中的random函数。前者主要用于生成随机数和实现序列中随机数和随机数列的挑选,后者用来生成a*b维的随机矩阵。一、random模块random模块中将近有7个函数都是可以用来生成随机数,列举如下:1.random.random()功能:随机生成一个[0,1)的浮点数示例:importrandomnumber=random.random()print(number)print(‘%.2f’%num

    2022年9月28日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号