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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac pycharm安装设置_入门python,这样操作,简单易学(安装教程)「建议收藏」

    mac pycharm安装设置_入门python,这样操作,简单易学(安装教程)「建议收藏」首次接触python,感觉比PHP更加实用,适用性更佳广泛。不局限于网站建设,搭建服务器。选择性更佳广。接下来告诉新手宝宝们,怎么在mac和window上安装python软件Pycharm一、Pycharm安装教程:Pycharm官网下载地址:https://www.jetbrains.com/pycharm/1、点击官网地址下载—如图所示,点击下面2,选择你电脑对应的系统下载。window电脑就…

    2022年8月28日
    2
  • OleDbCommand OleDbDataAdapter比较研究素材

    OleDbCommand OleDbDataAdapter比较研究素材转载地址:http://blog.sina.com.cn/s/blog_43eb83b901017fy6.html致谢!——————————————————————————————————-为什么使用OleDbCommand时OleDbConn…

    2022年5月19日
    30
  • spi总线协议及spi时序图详解_奔创spi

    spi总线协议及spi时序图详解_奔创spi大家好,我是无际。上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法。刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识。特别是SPI和IIC的,以前写程序都直接复制别人程序,功能实现就行了也没去研究过数据传输的时候时序具体是怎么样的。那个时候经验也不足,网上搜的资料说的都太学术化了,也看不懂。后面项目做多了,发现最常用到的通信总线无非就是SPI、IIC、USART、CAN、单口通信。理解也慢慢深刻了,现在去分析时序图也更加

    2022年10月9日
    1
  • git切换远程分支命令_git查看对应的远程分支

    git切换远程分支命令_git查看对应的远程分支git切换远程分支将远程git仓库里的指定分支拉取到本地(本地不存在的分支)当我想从远程仓库里拉取一条本地不存在的分支时:gitcheckout-b本地分支名origin/远程分支名例如:切换远程分支gitcheckout-breleaseorigin/release-9.4###原文默认,git项目只有一个分支,就是master,我们当然可以在本地创建多个分支,并推送到远程git管理平台上,或者将远程git管理平台上的其他..

    2022年9月21日
    0
  • Java集合转数组 数组转集合的几种常用方式[通俗易懂]

    Java集合转数组 数组转集合的几种常用方式[通俗易懂]Java集合转数组数组转集合的几种常用方式

    2022年9月2日
    2
  • SpringMVC执行流程和原理「建议收藏」

    SpringMVC执行流程和原理「建议收藏」SpringMVC流程:01、用户发送出请求到前端控制器DispatcherServlet。02、DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。03、HandlerMapping找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。04、Dispatche…

    2022年6月28日
    23

发表回复

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

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